{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ep_Qv7kzNOz6"
      },
      "source": [
        "# Introduction\n",
        "In this tutorial, you will:\n",
        "* Learn the fundamentals of the leaky integrate-and-fire (LIF) neuron model\n",
        "* Use snnTorch to implement a first order LIF neuron\n",
        "\n",
        "Install the latest PyPi distribution of snnTorch by clicking into the following cell and pressing `Shift+Enter`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "SPQITvDuNNJg"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Looking in indexes: https://pypi.douban.com/simple\n",
            "Collecting snntorch\n",
            "  Downloading https://pypi.doubanio.com/packages/03/23/025b12369a8ef2ba0566d8fe607e9efd5a3aab3e32debdff2053cf0561fb/snntorch-0.6.1-py2.py3-none-any.whl (104 kB)\n",
            "\u001b[K     |████████████████████████████████| 104 kB 1.1 MB/s eta 0:00:01\n",
            "\u001b[?25hRequirement already satisfied: pandas in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from snntorch) (1.4.2)\n",
            "Requirement already satisfied: numpy>=1.17 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from snntorch) (1.21.5)\n",
            "Collecting torch>=1.1.0\n",
            "  Using cached https://pypi.doubanio.com/packages/5f/24/16e94ac3a470027a2f6cf56dbbe2ce1b2742fa0ac98844f039fad103e142/torch-2.0.0-cp39-cp39-manylinux1_x86_64.whl (619.9 MB)\n",
            "Requirement already satisfied: matplotlib in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from snntorch) (3.5.1)\n",
            "Collecting nvidia-nvtx-cu11==11.7.91\n",
            "  Using cached https://pypi.doubanio.com/packages/23/d5/09493ff0e64fd77523afbbb075108f27a13790479efe86b9ffb4587671b5/nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl (98 kB)\n",
            "Collecting nvidia-nccl-cu11==2.14.3\n",
            "  Using cached https://pypi.doubanio.com/packages/55/92/914cdb650b6a5d1478f83148597a25e90ea37d739bd563c5096b0e8a5f43/nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl (177.1 MB)\n",
            "Collecting nvidia-cufft-cu11==10.9.0.58\n",
            "  Using cached https://pypi.doubanio.com/packages/74/79/b912a77e38e41f15a0581a59f5c3548d1ddfdda3225936fb67c342719e7a/nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux1_x86_64.whl (168.4 MB)\n",
            "Collecting nvidia-cudnn-cu11==8.5.0.96\n",
            "  Using cached https://pypi.doubanio.com/packages/dc/30/66d4347d6e864334da5bb1c7571305e501dcb11b9155971421bb7bb5315f/nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl (557.1 MB)\n",
            "Collecting nvidia-cuda-nvrtc-cu11==11.7.99\n",
            "  Using cached https://pypi.doubanio.com/packages/ef/25/922c5996aada6611b79b53985af7999fc629aee1d5d001b6a22431e18fec/nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl (21.0 MB)\n",
            "Collecting triton==2.0.0\n",
            "  Using cached https://pypi.doubanio.com/packages/4c/31/2de23d4e7849e9e1ec61c8560b362624b4337523845243f23cae7d0a0ffd/triton-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.3 MB)\n",
            "Requirement already satisfied: sympy in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from torch>=1.1.0->snntorch) (1.10.1)\n",
            "Collecting nvidia-curand-cu11==10.2.10.91\n",
            "  Using cached https://pypi.doubanio.com/packages/8f/11/af78d54b2420e64a4dd19e704f5bb69dcb5a6a3138b4465d6a48cdf59a21/nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl (54.6 MB)\n",
            "Collecting nvidia-cusparse-cu11==11.7.4.91\n",
            "  Using cached https://pypi.doubanio.com/packages/ea/6f/6d032cc1bb7db88a989ddce3f4968419a7edeafda362847f42f614b1f845/nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl (173.2 MB)\n",
            "Requirement already satisfied: filelock in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from torch>=1.1.0->snntorch) (3.6.0)\n",
            "Collecting nvidia-cusolver-cu11==11.4.0.1\n",
            "  Using cached https://pypi.doubanio.com/packages/3e/77/66149e3153b19312fb782ea367f3f950123b93916a45538b573fe373570a/nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl (102.6 MB)\n",
            "Requirement already satisfied: typing-extensions in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from torch>=1.1.0->snntorch) (4.1.1)\n",
            "Requirement already satisfied: jinja2 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from torch>=1.1.0->snntorch) (2.11.3)\n",
            "Requirement already satisfied: networkx in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from torch>=1.1.0->snntorch) (2.7.1)\n",
            "Collecting nvidia-cuda-cupti-cu11==11.7.101\n",
            "  Using cached https://pypi.doubanio.com/packages/e6/9d/dd0cdcd800e642e3c82ee3b5987c751afd4f3fb9cc2752517f42c3bc6e49/nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl (11.8 MB)\n",
            "Collecting nvidia-cublas-cu11==11.10.3.66\n",
            "  Using cached https://pypi.doubanio.com/packages/ce/41/fdeb62b5437996e841d83d7d2714ca75b886547ee8017ee2fe6ea409d983/nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl (317.1 MB)\n",
            "Collecting nvidia-cuda-runtime-cu11==11.7.99\n",
            "  Using cached https://pypi.doubanio.com/packages/36/92/89cf558b514125d2ebd8344dd2f0533404b416486ff681d5434a5832a019/nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl (849 kB)\n",
            "Requirement already satisfied: wheel in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.1.0->snntorch) (0.37.1)\n",
            "Requirement already satisfied: setuptools in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.1.0->snntorch) (61.2.0)\n",
            "Collecting lit\n",
            "  Using cached lit-15.0.7-py3-none-any.whl\n",
            "Collecting cmake\n",
            "  Using cached https://pypi.doubanio.com/packages/30/73/8cf2dcf5715824fe147b411f03d6d0144248e7bb0e3a1de4fd1824f8efa0/cmake-3.26.0-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (24.0 MB)\n",
            "Requirement already satisfied: MarkupSafe>=0.23 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from jinja2->torch>=1.1.0->snntorch) (2.0.1)\n",
            "Requirement already satisfied: pillow>=6.2.0 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (9.0.1)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (1.3.2)\n",
            "Requirement already satisfied: pyparsing>=2.2.1 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (3.0.4)\n",
            "Requirement already satisfied: python-dateutil>=2.7 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (2.8.2)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (4.25.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (21.3)\n",
            "Requirement already satisfied: cycler>=0.10 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from matplotlib->snntorch) (0.11.0)\n",
            "Requirement already satisfied: six>=1.5 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from python-dateutil>=2.7->matplotlib->snntorch) (1.16.0)\n",
            "Requirement already satisfied: pytz>=2020.1 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from pandas->snntorch) (2021.3)\n",
            "Requirement already satisfied: mpmath>=0.19 in /slurm_data/youcheng.li/anaconda3/lib/python3.9/site-packages (from sympy->torch>=1.1.0->snntorch) (1.2.1)\n",
            "Installing collected packages: nvidia-cublas-cu11, lit, cmake, triton, nvidia-nvtx-cu11, nvidia-nccl-cu11, nvidia-cusparse-cu11, nvidia-cusolver-cu11, nvidia-curand-cu11, nvidia-cufft-cu11, nvidia-cudnn-cu11, nvidia-cuda-runtime-cu11, nvidia-cuda-nvrtc-cu11, nvidia-cuda-cupti-cu11, torch, snntorch\n",
            "Successfully installed cmake-3.26.0 lit-15.0.7 nvidia-cublas-cu11-11.10.3.66 nvidia-cuda-cupti-cu11-11.7.101 nvidia-cuda-nvrtc-cu11-11.7.99 nvidia-cuda-runtime-cu11-11.7.99 nvidia-cudnn-cu11-8.5.0.96 nvidia-cufft-cu11-10.9.0.58 nvidia-curand-cu11-10.2.10.91 nvidia-cusolver-cu11-11.4.0.1 nvidia-cusparse-cu11-11.7.4.91 nvidia-nccl-cu11-2.14.3 nvidia-nvtx-cu11-11.7.91 snntorch-0.6.1 torch-2.0.0 triton-2.0.0\n"
          ]
        }
      ],
      "source": [
        "!pip install snntorch"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "31NkMZnxBFZ4"
      },
      "outputs": [],
      "source": [
        "# imports\n",
        "import snntorch as snn\n",
        "from snntorch import spikeplot as splt\n",
        "from snntorch import spikegen\n",
        "\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "cellView": "form",
        "id": "2kBGXe5K_xWh"
      },
      "outputs": [],
      "source": [
        "#@title Plotting Settings\n",
        "def plot_mem(mem, title=False):\n",
        "  if title:\n",
        "    plt.title(title)\n",
        "  plt.plot(mem)\n",
        "  plt.xlabel(\"Time step\")\n",
        "  plt.ylabel(\"Membrane Potential\")\n",
        "  plt.xlim([0, 50])\n",
        "  plt.ylim([0, 1])\n",
        "  plt.show()\n",
        "\n",
        "def plot_step_current_response(cur_in, mem_rec, vline1):\n",
        "  fig, ax = plt.subplots(2, figsize=(8,6),sharex=True)\n",
        "\n",
        "  # Plot input current\n",
        "  ax[0].plot(cur_in, c=\"tab:orange\")\n",
        "  ax[0].set_ylim([0, 0.2])\n",
        "  ax[0].set_ylabel(\"Input Current ($I_{in}$)\")\n",
        "  ax[0].set_title(\"Lapicque's Neuron Model With Step Input\")\n",
        "\n",
        "  # Plot membrane potential\n",
        "  ax[1].plot(mem_rec)\n",
        "  ax[1].set_ylim([0, 0.6]) \n",
        "  ax[1].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "\n",
        "  if vline1:\n",
        "    ax[1].axvline(x=vline1, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  plt.xlabel(\"Time step\")\n",
        "\n",
        "  plt.show()\n",
        "\n",
        "\n",
        "def plot_current_pulse_response(cur_in, mem_rec, title, vline1=False, vline2=False, ylim_max1=False):\n",
        "\n",
        "  fig, ax = plt.subplots(2, figsize=(8,6),sharex=True)\n",
        "\n",
        "  # Plot input current\n",
        "  ax[0].plot(cur_in, c=\"tab:orange\")\n",
        "  if not ylim_max1:\n",
        "    ax[0].set_ylim([0, 0.2])\n",
        "  else:\n",
        "    ax[0].set_ylim([0, ylim_max1])\n",
        "  ax[0].set_ylabel(\"Input Current ($I_{in}$)\")\n",
        "  ax[0].set_title(title)\n",
        "\n",
        "  # Plot membrane potential\n",
        "  ax[1].plot(mem_rec)\n",
        "  ax[1].set_ylim([0, 1])\n",
        "  ax[1].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "\n",
        "  if vline1:\n",
        "    ax[1].axvline(x=vline1, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  if vline2:\n",
        "    ax[1].axvline(x=vline2, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  plt.xlabel(\"Time step\")\n",
        "\n",
        "  plt.show()\n",
        "\n",
        "def compare_plots(cur1, cur2, cur3, mem1, mem2, mem3, vline1, vline2, vline3, vline4, title):\n",
        "  # Generate Plots\n",
        "  fig, ax = plt.subplots(2, figsize=(8,6),sharex=True)\n",
        "\n",
        "  # Plot input current\n",
        "  ax[0].plot(cur1)\n",
        "  ax[0].plot(cur2)\n",
        "  ax[0].plot(cur3)\n",
        "  ax[0].set_ylim([0, 0.2])\n",
        "  ax[0].set_ylabel(\"Input Current ($I_{in}$)\")\n",
        "  ax[0].set_title(title)\n",
        "\n",
        "  # Plot membrane potential\n",
        "  ax[1].plot(mem1)\n",
        "  ax[1].plot(mem2)\n",
        "  ax[1].plot(mem3)\n",
        "  ax[1].set_ylim([0, 1])\n",
        "  ax[1].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "\n",
        "  ax[1].axvline(x=vline1, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  ax[1].axvline(x=vline2, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  ax[1].axvline(x=vline3, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  ax[1].axvline(x=vline4, ymin=0, ymax=2.2, alpha = 0.25, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "\n",
        "  plt.xlabel(\"Time step\")\n",
        "\n",
        "  plt.show()\n",
        "\n",
        "def plot_cur_mem_spk(cur, mem, spk, thr_line=False, vline=False, title=False, ylim_max2=1.25):\n",
        "  # Generate Plots\n",
        "  fig, ax = plt.subplots(3, figsize=(8,6), sharex=True, \n",
        "                        gridspec_kw = {'height_ratios': [1, 1, 0.4]})\n",
        "\n",
        "  # Plot input current\n",
        "  ax[0].plot(cur, c=\"tab:orange\")\n",
        "  ax[0].set_ylim([0, 0.4])\n",
        "  ax[0].set_xlim([0, 200])\n",
        "  ax[0].set_ylabel(\"Input Current ($I_{in}$)\")\n",
        "  if title:\n",
        "    ax[0].set_title(title)\n",
        "\n",
        "  # Plot membrane potential\n",
        "  ax[1].plot(mem)\n",
        "  ax[1].set_ylim([0, ylim_max2]) \n",
        "  ax[1].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "  if thr_line:\n",
        "    ax[1].axhline(y=thr_line, alpha=0.25, linestyle=\"dashed\", c=\"black\", linewidth=2)\n",
        "  plt.xlabel(\"Time step\")\n",
        "\n",
        "  # Plot output spike using spikeplot\n",
        "  splt.raster(spk, ax[2], s=400, c=\"black\", marker=\"|\")\n",
        "  if vline:\n",
        "    ax[2].axvline(x=vline, ymin=0, ymax=6.75, alpha = 0.15, linestyle=\"dashed\", c=\"black\", linewidth=2, zorder=0, clip_on=False)\n",
        "  plt.ylabel(\"Output spikes\")\n",
        "  plt.yticks([]) \n",
        "\n",
        "  plt.show()\n",
        "\n",
        "def plot_spk_mem_spk(spk_in, mem, spk_out, title):\n",
        "  # Generate Plots\n",
        "  fig, ax = plt.subplots(3, figsize=(8,6), sharex=True, \n",
        "                        gridspec_kw = {'height_ratios': [0.4, 1, 0.4]})\n",
        "\n",
        "  # Plot input current\n",
        "  splt.raster(spk_in, ax[0], s=400, c=\"black\", marker=\"|\")\n",
        "  ax[0].set_ylabel(\"Input Spikes\")\n",
        "  ax[0].set_title(title)\n",
        "  plt.yticks([]) \n",
        "\n",
        "  # Plot membrane potential\n",
        "  ax[1].plot(mem)\n",
        "  ax[1].set_ylim([0, 1])\n",
        "  ax[1].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "  ax[1].axhline(y=0.5, alpha=0.25, linestyle=\"dashed\", c=\"black\", linewidth=2)\n",
        "  plt.xlabel(\"Time step\")\n",
        "\n",
        "  # Plot output spike using spikeplot\n",
        "  splt.raster(spk_rec, ax[2], s=400, c=\"black\", marker=\"|\")\n",
        "  plt.ylabel(\"Output spikes\")\n",
        "  plt.yticks([]) \n",
        "\n",
        "  plt.show()\n",
        "\n",
        "\n",
        "def plot_reset_comparison(spk_in, mem_rec, spk_rec, mem_rec0, spk_rec0):\n",
        "  # Generate Plots to Compare Reset Mechanisms\n",
        "  fig, ax = plt.subplots(nrows=3, ncols=2, figsize=(10,6), sharex=True, \n",
        "                        gridspec_kw = {'height_ratios': [0.4, 1, 0.4], 'wspace':0.05})\n",
        "\n",
        "  # Reset by Subtraction: input spikes\n",
        "  splt.raster(spk_in, ax[0][0], s=400, c=\"black\", marker=\"|\")\n",
        "  ax[0][0].set_ylabel(\"Input Spikes\")\n",
        "  ax[0][0].set_title(\"Reset by Subtraction\")\n",
        "  ax[0][0].set_yticks([])\n",
        "\n",
        "  # Reset by Subtraction: membrane potential \n",
        "  ax[1][0].plot(mem_rec)\n",
        "  ax[1][0].set_ylim([0, 0.7])\n",
        "  ax[1][0].set_ylabel(\"Membrane Potential ($U_{mem}$)\")\n",
        "  ax[1][0].axhline(y=0.5, alpha=0.25, linestyle=\"dashed\", c=\"black\", linewidth=2)\n",
        "\n",
        "  # Reset by Subtraction: output spikes\n",
        "  splt.raster(spk_rec, ax[2][0], s=400, c=\"black\", marker=\"|\")\n",
        "  ax[2][0].set_yticks([])\n",
        "  ax[2][0].set_xlabel(\"Time step\")\n",
        "  ax[2][0].set_ylabel(\"Output Spikes\")\n",
        "\n",
        "  # Reset to Zero: input spikes\n",
        "  splt.raster(spk_in, ax[0][1], s=400, c=\"black\", marker=\"|\")\n",
        "  ax[0][1].set_title(\"Reset to Zero\")\n",
        "  ax[0][1].set_yticks([])\n",
        "\n",
        "  # Reset to Zero: membrane potential\n",
        "  ax[1][1].plot(mem_rec0)\n",
        "  ax[1][1].set_ylim([0, 0.7])\n",
        "  ax[1][1].axhline(y=0.5, alpha=0.25, linestyle=\"dashed\", c=\"black\", linewidth=2)\n",
        "  ax[1][1].set_yticks([])\n",
        "  ax[2][1].set_xlabel(\"Time step\")\n",
        "\n",
        "  # Reset to Zero: output spikes\n",
        "  splt.raster(spk_rec0, ax[2][1], s=400, c=\"black\", marker=\"|\")\n",
        "  ax[2][1].set_yticks([])\n",
        "\n",
        "  plt.show()"
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "xmTt5dvyXNNy"
      },
      "source": [
        "# 1. The Spectrum of Neuron Models\n",
        "A large variety of neuron models are out there, ranging from biophysically accurate models (i.e., the Hodgkin-Huxley models) to the extremely simple artificial neuron that pervades all facets of modern deep learning.\n",
        "\n",
        "**Hodgkin-Huxley Neuron Models**$-$While biophysical models can reproduce electrophysiological results with a high degree of accuracy, their complexity makes them difficult to use at present.\n",
        "\n",
        "**Artificial Neuron Model**$-$On the other end of the spectrum is the artificial neuron. The inputs are multiplied by their corresponding weights and passed through an activation function. This simplification has enabled deep learning researchers to perform incredible feats in computer vision, natural language processing, and many other machine learning-domain tasks.\n",
        "\n",
        "**Leaky Integrate-and-Fire Neuron Models**$-$Somewhere in the middle of the divide lies the leaky integrate-and-fire (LIF) neuron model. It takes the sum of weighted inputs, much like the artificial neuron. But rather than passing it directly to an activation function, it will integrate the input over time with a leakage, much like an RC circuit. If the integrated value exceeds a threshold, then the LIF neuron will emit a voltage spike. The LIF neuron abstracts away the shape and profile of the output spike; it is simply treated as a discrete event. As a result, information is not stored within the spike, but rather the timing (or frequency) of spikes. Simple spiking neuron models have produced much insight into the neural code, memory, network dynamics, and more recently, deep learning. The LIF neuron sits in the sweet spot between biological plausibility and practicality. \n",
        "\n",
        "<center>\n",
        "<img src='file/img/examples/tutorial2/2_1_neuronmodels.png?raw=true' width=\"1000\">\n",
        "</center>\n",
        "\n",
        "\n",
        "The different versions of the LIF model each have their own dynamics and use-cases. snnTorch currently supports the following LIF neurons:\n",
        "* Lapicque's RC model: ``snntorch.Lapicque``\n",
        "* 1st-order model: ``snntorch.Leaky`` \n",
        "* Synaptic Conductance-based neuron model: ``snntorch.Synaptic``\n",
        "* Recurrent 1st-order model: ``snntorch.RLeaky``\n",
        "* Recurrent Synaptic Conductance-based neuron model: ``snntorch.RSynaptic``\n",
        "* Alpha neuron Model: ``snntorch.Alpha``\n",
        "\n",
        "Several other non-LIF spiking neurons are also available. This tutorial focuses on the first of these models. This will be used to build towards the other models in [subsequent tutorials](https://snntorch.readthedocs.io/en/latest/tutorials/index.html)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Nea8oBorr_KZ"
      },
      "source": [
        "# 2. The Leaky Integrate-and-Fire Neuron Model"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YKsrN5feQ2Dz"
      },
      "source": [
        "## 2.1 Spiking Neurons: Intuition"
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "YGStnfjzsGKb"
      },
      "source": [
        "In our brains, a neuron might be connected to 1,000 $-$ 10,000 other neurons. If one neuron spikes, all downhill neurons might feel it. But what determines whether a neuron spikes in the first place? The past century of experiments demonstrate that if a neuron experiences *sufficient* stimulus at its input, then it might become excited and fire its own spike. \n",
        "\n",
        "Where does this stimulus come from? It could be from:\n",
        "* the sensory periphery, \n",
        "* an invasive electrode artificially stimulating the neuron, or in most cases,\n",
        "* from other pre-synaptic neurons. \n",
        "\n",
        "<center>\n",
        "<img src='file/tutorial2/2_2_intuition.png?raw=true' width=\"500\">\n",
        "</center>\n",
        "\n",
        "Given that these spikes are very short bursts of electrical activity, it is quite unlikely for all input spikes to arrive at the neuron body in precise unison. This indicates the presence of temporal dynamics that 'sustain' the input spikes, kind of like a delay.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "l44jI7A2ReB_"
      },
      "source": [
        "## 2.2 The Passive Membrane"
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "Od5tfXv6_wcq"
      },
      "source": [
        "Like all cells, a neuron is surrounded by a thin membrane. This membrane is a lipid bilayer that insulates the conductive saline solution within the neuron from the extracellular medium. Electrically, the two conductive solutions separated by an insulator act as a capacitor. \n",
        "\n",
        "Another function of this membrane is to control what goes in and out of this cell (e.g., ions such as Na$^+$). The membrane is usually impermeable to ions which blocks them from entering and exiting the neuron body. But there are specific channels in the membrane that are triggered to open by injecting current into the neuron. This charge movement is electrically modelled by a resistor.\n",
        "\n",
        "<center>\n",
        "<img src='file/tutorial2/2_3_passivemembrane.png?raw=true' width=\"450\">\n",
        "</center>\n",
        "\n",
        "The following block will derive the behaviour of a LIF neuron from scratch. If you'd prefer to skip the math, then feel free to scroll on by; we'll take a more hands-on approach to understanding the LIF neuron dynamics after the derivation. \n"
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "wT_S4b4HL2ir"
      },
      "source": [
        "---\n",
        "**Optional: Derivation of LIF Neuron Model**\n",
        "\n",
        "Now say some arbitrary time-varying current $I_{\\rm in}(t)$ is injected into the neuron, be it via electrical stimulation or from other neurons. The total current in the circuit is conserved, so:\n",
        "\n",
        "$$I_{\\rm in}(t) = I_{R} + I_{C}$$\n",
        "\n",
        "From Ohm's Law, the membrane potential measured between the inside and outside of the neuron $U_{\\rm mem}$ is proportional to the current through the resistor:\n",
        "\n",
        "$$I_{R}(t) = \\frac{U_{\\rm mem}(t)}{R}$$\n",
        "\n",
        "The capacitance is a proportionality constant between the charge stored on the capacitor $Q$ and $U_{\\rm mem}(t)$:\n",
        "\n",
        "\n",
        "$$Q = CU_{\\rm mem}(t)$$\n",
        "\n",
        "The rate of change of charge gives the capacitive current:\n",
        "\n",
        "$$\\frac{dQ}{dt}=I_C(t) = C\\frac{dU_{\\rm mem}(t)}{dt}$$\n",
        "\n",
        "Therefore:\n",
        "\n",
        "$$I_{\\rm in}(t) = \\frac{U_{\\rm mem}(t)}{R} + C\\frac{dU_{\\rm mem}(t)}{dt}$$\n",
        "\n",
        "$$\\implies RC \\frac{dU_{\\rm mem}(t)}{dt} = -U_{\\rm mem}(t) + RI_{\\rm in}(t)$$\n",
        "\n",
        "The right hand side of the equation is of units **\\[Voltage]**. On the left hand side of the equation, the term $\\frac{dU_{\\rm mem}(t)}{dt}$ is of units **\\[Voltage/Time]**. To equate it to the left hand side (i.e., voltage), $RC$ must be of unit **\\[Time]**. We refer to $\\tau = RC$ as the time constant of the circuit:\n",
        "\n",
        "$$ \\tau \\frac{dU_{\\rm mem}(t)}{dt} = -U_{\\rm mem}(t) + RI_{\\rm in}(t)$$\n",
        "\n",
        "The passive membrane is therefore described by a linear differential equation.\n",
        "\n",
        "For a derivative of a function to be of the same form as the original function, i.e., $\\frac{dU_{\\rm mem}(t)}{dt} \\propto U_{\\rm mem}(t)$, this implies the solution is exponential with a time constant $\\tau$.\n",
        "\n",
        "Say the neuron starts at some value $U_{0}$ with no further input, i.e., $I_{\\rm in}(t)=0$. The solution of the linear differential equation is:\n",
        "\n",
        "$$U_{\\rm mem}(t) = U_0e^{-\\frac{t}{\\tau}}$$\n",
        "\n",
        "The general solution is shown below.\n",
        "\n",
        "<center>\n",
        "<img src='file/tutorial2/2_4_RCmembrane.png?raw=true' width=\"500\">\n",
        "</center>\n",
        "\n",
        "---"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "a3v_nLcCW0TO"
      },
      "source": [
        "**Optional: Forward Euler Method to Solving the LIF Neuron Model** \n",
        "\n",
        "We managed to find the analytical solution to the LIF neuron, but it is unclear how this might be useful in a neural network. This time, let's instead use the forward Euler method to solve the previous linear ordinary differential equation (ODE). This approach might seem arduous, but it gives us a discrete, recurrent representation of the LIF neuron. Once we reach this solution, it can be applied directly to a neural network. As before, the linear ODE describing the RC circuit is:\n",
        "\n",
        "$$\\tau \\frac{dU(t)}{dt} = -U(t) + RI_{\\rm in}(t)$$\n",
        "\n",
        "The subscript from $U(t)$ is omitted for simplicity.\n",
        "\n",
        "First, let's solve this derivative without taking the limit $\\Delta t \\rightarrow 0$:\n",
        "\n",
        "$$\\tau \\frac{U(t+\\Delta t)-U(t)}{\\Delta t} = -U(t) + RI_{\\rm in}(t)$$\n",
        "\n",
        "For a small enough $\\Delta t$, this gives a good enough approximation of continuous-time integration. Isolating the membrane at the following time step gives:\n",
        "\n",
        "$$U(t+\\Delta t) = U(t) + \\frac{\\Delta t}{\\tau}\\big(-U(t) + RI_{\\rm in}(t)\\big)$$\n",
        "\n",
        "The following function represents this equation:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "id": "kFJTqNLQZyam"
      },
      "outputs": [],
      "source": [
        "def leaky_integrate_neuron(U, time_step=1e-3, I=0, R=5e7, C=1e-10):\n",
        "  tau = R*C\n",
        "  U = U + (time_step/tau)*(-U + I*R)\n",
        "  return U"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "uBk0fvH8aQkU"
      },
      "source": [
        "The default values are set to $R=50 M\\Omega$ and $C=100pF$ (i.e., $\\tau=5ms$). These are quite realistic with respect to biological neurons.\n",
        "\n",
        "Now loop through this function, iterating one time step at a time. \n",
        "The membrane potential is initialized at $U=0.9 V$, with the assumption that there is no injected input current, $I_{\\rm in}=0 A$.\n",
        "The simulation is performed with a millisecond precision $\\Delta t=1\\times 10^{-3}$s. "
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "id": "ziFpaBigah5D"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "num_steps = 100\n",
        "U = 0.9\n",
        "U_trace = []  # keeps a record of U for plotting\n",
        "\n",
        "for step in range(num_steps):\n",
        "  U_trace.append(U)\n",
        "  U = leaky_integrate_neuron(U)  # solve next step of U\n",
        "\n",
        "plot_mem(U_trace, \"Leaky Neuron Model\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Vd41ihCAfAMr"
      },
      "source": [
        "This exponential decay seems to match what we expected! "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rTXS_aSmRs-3"
      },
      "source": [
        "# 3 Lapicque's LIF Neuron Model"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Jt2q6tZiWkgT"
      },
      "source": [
        "This similarity between nerve membranes and RC circuits was observed by [Louis Lapicque in 1907](https://core.ac.uk/download/pdf/21172797.pdf). He stimulated the nerve fiber of a frog with a brief electrical pulse, and found that neuron membranes could be approximated as a capacitor with a leakage. We pay homage to his findings by naming the basic LIF neuron model in snnTorch after him. \n",
        "\n",
        "Most of the concepts in Lapicque's model carry forward to other LIF neuron models. Now it's time to simulate this neuron using snnTorch."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WtveAGG0zE0n"
      },
      "source": [
        "## 3.1 Lapicque: Without Stimulus"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qi5EnND98cz3"
      },
      "source": [
        "Instantiate Lapicque's neuron using the following line of code. R & C are changed to simpler values, while keeping the previous time constant of $\\tau=5\\times10^{-3}$s."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "wI2Nahsg8d-t"
      },
      "outputs": [],
      "source": [
        "time_step = 1e-3\n",
        "R = 5\n",
        "C = 1e-3\n",
        "\n",
        "# leaky integrate and fire neuron, tau=5e-3\n",
        "lif1 = snn.Lapicque(R=R, C=C, time_step=time_step)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kuytxXet8lc9"
      },
      "source": [
        "The neuron model is now stored in `lif1`. To use this neuron: \n",
        "\n",
        "**Inputs**\n",
        "* `spk_in`: each element of $I_{\\rm in}$ is sequentially passed as an input (0 for now)\n",
        "* `mem`: the membrane potential, previously $U[t]$, is also passed as input. Initialize it arbitrarily as $U[0] = 0.9~V$.\n",
        "\n",
        "**Outputs**\n",
        "* `spk_out`: output spike $S_{\\rm out}[t+\\Delta t]$ at the next time step ('1' if there is a spike; '0' if there is no spike)\n",
        "* `mem`: membrane potential $U_{\\rm mem}[t+\\Delta t]$ at the next time step\n",
        "\n",
        "These all need to be of type `torch.Tensor`.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "M_0O1Q3Y9KgM"
      },
      "outputs": [],
      "source": [
        "# Initialize membrane, input, and output\n",
        "mem = torch.ones(1) * 0.9  # U=0.9 at t=0\n",
        "cur_in = torch.zeros(num_steps)  # I=0 for all t \n",
        "spk_out = torch.zeros(1)  # initialize output spikes"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_CEuNHsN8-67"
      },
      "source": [
        "These values are only for the initial time step $t=0$. \n",
        "To analyze the evolution of `mem` over time, create a list `mem_rec` to record these values at every time step."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "id": "CUCxQBTQ9d_P"
      },
      "outputs": [],
      "source": [
        "# A list to store recordings of membrane potential\n",
        "mem_rec = [mem]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i4TxVFaV9uf6"
      },
      "source": [
        "Now it's time to run a simulation! At each time step, `mem` is updated and stored in `mem_rec`:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "j6GeMMiU8kc4"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# pass updated value of mem and cur_in[step]=0 at every time step\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in[step], mem)\n",
        "\n",
        "  # Store recordings of membrane potential\n",
        "  mem_rec.append(mem)\n",
        "\n",
        "# crunch the list of tensors into one tensor\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "\n",
        "plot_mem(mem_rec, \"Lapicque's Neuron Model Without Stimulus\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9k0PKng2JYcx"
      },
      "source": [
        "The membrane potential decays over time in the absence of any input stimuli. "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "B6GZUEFgJ0l0"
      },
      "source": [
        "## 3.2 Lapicque: Step Input\n",
        "\n",
        "Now apply a step current $I_{\\rm in}(t)$ that switches on at $t=t_0$. Given the linear first-order differential equation:\n",
        "\n",
        "$$ \\tau \\frac{dU_{\\rm mem}}{dt} = -U_{\\rm mem} + RI_{\\rm in}(t),$$\n",
        "\n",
        "the general solution is:\n",
        "\n",
        "$$U_{\\rm mem}=I_{\\rm in}(t)R + [U_0 - I_{\\rm in}(t)R]e^{-\\frac{t}{\\tau}}$$\n",
        "\n",
        "If the membrane potential is initialized to $U_{\\rm mem}(t=0) = 0 V$, then:\n",
        "\n",
        "$$U_{\\rm mem}(t)=I_{\\rm in}(t)R [1 - e^{-\\frac{t}{\\tau}}]$$\n",
        "\n",
        "Based on this explicit time-dependent form, we expect $U_{\\rm mem}$ to relax exponentially towards $I_{\\rm in}R$. Let's visualize what this looks like by triggering a current pulse of $I_{in}=100mA$ at $t_0 = 10ms$."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "kD7cLKSuLu9n"
      },
      "outputs": [],
      "source": [
        "# Initialize input current pulse\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.1), 0)  # input current turns on at t=10\n",
        "\n",
        "# Initialize membrane, output and recordings\n",
        "mem = torch.zeros(1)  # membrane potential of 0 at t=0\n",
        "spk_out = torch.zeros(1)  # neuron needs somewhere to sequentially dump its output spikes\n",
        "mem_rec = [mem]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PW8ZDbKCNW8E"
      },
      "source": [
        "This time, the new values of `cur_in` are passed to the neuron:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "id": "w9J2AsrZNXr8"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "num_steps = 200\n",
        "\n",
        "# pass updated value of mem and cur_in[step] at every time step\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in[step], mem)\n",
        "  mem_rec.append(mem)\n",
        "\n",
        "# crunch -list- of tensors into one tensor\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "\n",
        "plot_step_current_response(cur_in, mem_rec, 10)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "uZi44ZEvNhkR"
      },
      "source": [
        "As $t\\rightarrow \\infty$, the membrane potential $U_{\\rm mem}$ exponentially relaxes to $I_{\\rm in}R$:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "1l40Efnbk92o"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "The calculated value of input pulse [A] x resistance [Ω] is: 0.5 V\n",
            "The simulated value of steady-state membrane potential is: 0.4999999403953552 V\n"
          ]
        }
      ],
      "source": [
        "print(f\"The calculated value of input pulse [A] x resistance [Ω] is: {cur_in[11]*lif1.R} V\")\n",
        "print(f\"The simulated value of steady-state membrane potential is: {mem_rec[200][0]} V\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "H0ql9cAzpN5D"
      },
      "source": [
        "Close enough!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "HOgCeLPYaLKZ"
      },
      "source": [
        "## 3.3 Lapicque: Pulse Input\n",
        "\n",
        "Now what if the step input was clipped at $t=30ms$?"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "id": "hjtupQNxaQ5D"
      },
      "outputs": [],
      "source": [
        "# Initialize current pulse, membrane and outputs\n",
        "cur_in1 = torch.cat((torch.zeros(10), torch.ones(20)*(0.1), torch.zeros(170)), 0)  # input turns on at t=10, off at t=30\n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec1 = [mem]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "id": "O8JFL9CGa0NW"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in1[step], mem)\n",
        "  mem_rec1.append(mem)\n",
        "mem_rec1 = torch.stack(mem_rec1)\n",
        "\n",
        "plot_current_pulse_response(cur_in1, mem_rec1, \"Lapicque's Neuron Model With Input Pulse\", \n",
        "                            vline1=10, vline2=30)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "orJvjev6a9tR"
      },
      "source": [
        "$U_{\\rm mem}$ rises just as it did for the step input, but now it decays with a time constant of $\\tau$ as in our first simulation. \n",
        "\n",
        "Let's deliver approximately the same amount of charge $Q = I \\times t$ to the circuit in half the time. This means the input current amplitude must be increased by a little, and the time window must be decreased."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "id": "j_G_gWTzbo4J"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Increase amplitude of current pulse; half the time.\n",
        "cur_in2 = torch.cat((torch.zeros(10), torch.ones(10)*0.111, torch.zeros(180)), 0)  # input turns on at t=10, off at t=20\n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec2 = [mem]\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in2[step], mem)\n",
        "  mem_rec2.append(mem)\n",
        "mem_rec2 = torch.stack(mem_rec2)\n",
        "\n",
        "plot_current_pulse_response(cur_in2, mem_rec2, \"Lapicque's Neuron Model With Input Pulse: x1/2 pulse width\",\n",
        "                            vline1=10, vline2=20)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "34azxvjWbqge"
      },
      "source": [
        "Let's do that again, but with an even faster input pulse and higher amplitude:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "id": "650G94v9dgr3"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Increase amplitude of current pulse; quarter the time.\n",
        "cur_in3 = torch.cat((torch.zeros(10), torch.ones(5)*0.147, torch.zeros(185)), 0)  # input turns on at t=10, off at t=15\n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec3 = [mem]\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in3[step], mem)\n",
        "  mem_rec3.append(mem)\n",
        "mem_rec3 = torch.stack(mem_rec3)\n",
        "\n",
        "plot_current_pulse_response(cur_in3, mem_rec3, \"Lapicque's Neuron Model With Input Pulse: x1/4 pulse width\",\n",
        "                            vline1=10, vline2=15)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fuQtNgw4sYhk"
      },
      "source": [
        "Now compare all three experiments on the same plot:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "id": "lZ8iBAjVM9FO"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "compare_plots(cur_in1, cur_in2, cur_in3, mem_rec1, mem_rec2, mem_rec3, 10, 15, \n",
        "              20, 30, \"Lapicque's Neuron Model With Input Pulse: Varying inputs\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6WpZx0NStNdd"
      },
      "source": [
        "As the input current pulse amplitude increases, the rise time of the membrane potential speeds up. In the limit of the input current pulse width becoming infinitesimally small, $T_W \\rightarrow 0s$, the membrane potential will jump straight up in virtually zero rise time:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 18,
      "metadata": {
        "id": "h0EG17NpuzuN"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 2 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Current spike input\n",
        "cur_in4 = torch.cat((torch.zeros(10), torch.ones(1)*0.5, torch.zeros(189)), 0)  # input only on for 1 time step\n",
        "mem = torch.zeros(1) \n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec4 = [mem]\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif1(cur_in4[step], mem)\n",
        "  mem_rec4.append(mem)\n",
        "mem_rec4 = torch.stack(mem_rec4)\n",
        "\n",
        "plot_current_pulse_response(cur_in4, mem_rec4, \"Lapicque's Neuron Model With Input Spike\", \n",
        "                            vline1=10, ylim_max1=0.6)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DNY_EftJvREj"
      },
      "source": [
        "The current pulse width is now so short, it effectively looks like a spike. That is to say, charge is delivered in an infinitely short period of time, $I_{\\rm in}(t) = Q/t_0$ where $t_0 \\rightarrow 0$. More formally:\n",
        "\n",
        "$$I_{\\rm in}(t) = Q \\delta (t-t_0),$$\n",
        "\n",
        "where $\\delta (t-t_0)$ is the Dirac-Delta function. Physically, it is impossible to 'instantaneously' deposit charge. But integrating $I_{\\rm in}$ gives a result that makes physical sense, as we can obtain the charge delivered:\n",
        "\n",
        "$$1 = \\int^{t_0 + a}_{t_0 - a}\\delta(t-t_0)dt$$\n",
        "\n",
        "$$f(t_0) = \\int^{t_0 + a}_{t_0 - a}f(t)\\delta(t-t_0)dt$$\n",
        "\n",
        "Here, $f(t_0) = I_{\\rm in}(t_0=10) = 0.5A \\implies f(t) = Q = 0.5C$.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5kQ6MteCpMnk"
      },
      "source": [
        "Hopefully you have a good feel of how the membrane potential leaks at rest, and integrates the input current. That covers the 'leaky' and 'integrate' part of the neuron. How about the fire? "
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "CUH8IYh9xlV-"
      },
      "source": [
        "## 3.4 Lapicque: Firing\n",
        "\n",
        "So far, we have only seen how a neuron will react to spikes at the input. For a neuron to generate and emit its own spikes at the output, the passive membrane model must be combined with a threshold.\n",
        "\n",
        "If the membrane potential exceeds this threshold, then a voltage spike will be generated, external to the passive membrane model. \n",
        "\n",
        "<center>\n",
        "<img src='file/tutorial2/2_4_spiking.png?raw=true' width=\"450\">\n",
        "</center>\n",
        "\n",
        "Modify the `leaky_integrate_neuron` function from before to add a spike response."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 19,
      "metadata": {
        "id": "zNCfZ6dQkuwj"
      },
      "outputs": [],
      "source": [
        "# R=5.1, C=5e-3 for illustrative purposes\n",
        "def leaky_integrate_and_fire(mem, cur=0, threshold=1, time_step=1e-3, R=5.1, C=5e-3):\n",
        "  tau_mem = R*C\n",
        "  spk = (mem > threshold) # if membrane exceeds threshold, spk=1, else, 0\n",
        "  mem = mem + (time_step/tau_mem)*(-mem + cur*R)\n",
        "  return mem, spk"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "g3ZazVZkljmF"
      },
      "source": [
        "Set `threshold=1`, and apply a step current to get this neuron spiking."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {
        "id": "19gpai24k9Ex"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Small step current input\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.2), 0)\n",
        "mem = torch.zeros(1)\n",
        "mem_rec = []\n",
        "spk_rec = []\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  mem, spk = leaky_integrate_and_fire(mem, cur_in[step])\n",
        "  mem_rec.append(mem)\n",
        "  spk_rec.append(spk)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "plot_cur_mem_spk(cur_in, mem_rec, spk_rec, thr_line=1, vline=109, ylim_max2=1.3, \n",
        "                 title=\"LIF Neuron Model With Uncontrolled Spiking\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QEBX8ICtn9tY"
      },
      "source": [
        "Oops - the output spikes have gone out of control! This is because we forgot to add a reset mechanism. In reality, each time a neuron fires, the membrane potential hyperpolarizes back to its resting potential.\n",
        "\n",
        "Implementing this reset mechanism into our neuron:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {
        "id": "oj0MJmApoRlH"
      },
      "outputs": [],
      "source": [
        "# LIF w/Reset mechanism\n",
        "def leaky_integrate_and_fire(mem, cur=0, threshold=1, time_step=1e-3, R=5.1, C=5e-3):\n",
        "  tau_mem = R*C\n",
        "  spk = (mem > threshold)\n",
        "  mem = mem + (time_step/tau_mem)*(-mem + cur*R) - spk*threshold  # every time spk=1, subtract the threhsold\n",
        "  return mem, spk"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "id": "7VZkftxRoa3n"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Small step current input\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.2), 0)\n",
        "mem = torch.zeros(1)\n",
        "mem_rec = []\n",
        "spk_rec = []\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  mem, spk = leaky_integrate_and_fire(mem, cur_in[step])\n",
        "  mem_rec.append(mem)\n",
        "  spk_rec.append(spk)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "plot_cur_mem_spk(cur_in, mem_rec, spk_rec, thr_line=1, vline=109, ylim_max2=1.3, \n",
        "                 title=\"LIF Neuron Model With Reset\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Bf91G6E3lZFx"
      },
      "source": [
        "Bam. We now have a functional leaky integrate-and-fire neuron model! \n",
        "\n",
        "Note that if $I_{\\rm in}=0.2 A$ and $R<5 \\Omega$, then $I\\times R < 1 V$. If `threshold=1`, then no spiking would occur. Feel free to go back up, change the values, and test it out."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "InxmKoplUnoB"
      },
      "source": [
        "As before, all of that code is condensed by calling the built-in Lapicque neuron model from snnTorch:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "id": "HPx-uuH90JTo"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Membrane potential time constant: 0.025s\n"
          ]
        }
      ],
      "source": [
        "# Create the same neuron as before using snnTorch\n",
        "lif2 = snn.Lapicque(R=5.1, C=5e-3, time_step=1e-3)\n",
        "\n",
        "print(f\"Membrane potential time constant: {lif2.R * lif2.C:.3f}s\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "id": "LU9dSGi6zEOP"
      },
      "outputs": [
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAGDCAYAAAAlERkEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABKRUlEQVR4nO3dd5xcZdn/8c+Vrambsuk9kBATahISUFBpEhQEAZUizYLYkJ8PKj4+KqI+ivWxgIhKR4rSgnQBqQJJSCUkISSkZ9M3m2zfvX5/nLNhsuxmZ3Zn5kz5vl+vec3MmVOuMzNnrrnvc5/7NndHRERE8ke3qAMQERGR9FLyFxERyTNK/iIiInlGyV9ERCTPKPmLiIjkGSV/ERGRPKPkL1nJzEaZ2W4zK4g6Fmmfmd1iZj+Oc953zOzEJG13t5mNS8e2RLKRkr+kXCp+aN19jbv3cvemZK63K8zs32ZWa2YjY6adaGbvRBhWXMzsYjNzM/t1q+lnhNNviSg0zOxoM9sV+0fPzP7czrQbAMLvxspwetx/QNrZfrGZ/crM1oV/KlaZ2W9iXk/ZHwkz+7CZrUvFutvYlv4Q5RElf5Hk2gN8L9UbMbPCFKz2beDTrdZ9IbA8BdtKxBygAJgSM+1YYEOraR8Enk/B9r8DTAOmA72B44B5KdiOSNoo+UtkzKyfmf3TzLaY2Y7w8YiY1/9tZj81s9fMrNLMHjKz/uFrY8ISaWH4vL+Z3WxmG8J1PRiznm+a2cbwtc+Gyx0Ys43Px8x7sZm9GPN8opk9ZWbbzWyZmX2qg936HXBuy/rb2OdhZnZfuM+rzOzymNf2KaG2LvWFJbNvm9lCYI+ZFZrZx83sDTPbGe7L+1rNf6WZLQzfv3vMrHQ/sW8CFgEnt7ynwPuBWa32YX/bPMLMXjezKjO7ByhtteypZjY/XPZlMzt0f28mgLs3AK8QJHfMbBBQDNzTatoEwuTf8hmb2aXA+cC3wlL7wzGrPjzO9+ZI4AF33+CBd9z9tnA7twOjgIfD9X8rnH5UuH87zWyBmX045j1o93vdkXDZH5nZS+F7/KSZlYevtRwTl4bf9Y1m9l8xy7b7/WpvPyR3KflLlLoBNwOjCX54aoA/tJrnQuCzwDCgkSC5tuV2oAcwGRgE/AbAzGYCVwInAeOBuKs1zawn8BTwt3Cd5wLXm9nk/Sy2HvgzcHUb6+sGPAwsAIYDJwBXmNnJ8cYUxvAxoC8wDrgLuAIYCDxK8ONdHDP/p4CZwFjgUODiDtZ/G8F7DnAO8BBQF7MPE9rbZrjdBwk+i/7A34GzYpadAtwEfBEYAPwJmGVmJXHs9/OEiT68fzG8xU5b5e77VJG7+43AncDPw1MBp8W8HO978wrwDTP7spkdYmYWs/4LgDXAaeH6f25mw4FHgB+H78OVwH1mNjBmnfF+r9tyHnAJwXeyOFx/rOMIvusfAa6yOKry29qPBOKRLKTkL5Fx923ufp+7V7t7FfAT4EOtZrvd3Re7e0t1+qesVSM/MxsKnAJc5u473L3B3Z8LX/4UcHPMOq5OIMRTgXfc/WZ3b3T314H7gLM7WO6nwGlt/Ek4Ehjo7te4e314TvrPBEk2Xr9z97XuXgN8GnjE3Z8KS8e/BLoTlNZj59/g7tsJ/ngc3sH6HwA+bGZlBAnqtlav72+bRwFFwP+Fn8E/gNkxy34B+JO7v+ruTe5+K8Efi6Pi2O/ngGPCxHss8ALwH+ComGnP7Wf5tsT73vwUuJagBmEOsN7MLtrPej8DPOruj7p7s7s/FS730Zh5Ovxe78fN7r48/A7c20bcP3T3Pe6+iODP9blxrlfyiJK/RMbMepjZn8xstZntIijd9W31I7g25vFqguRS3mpVI4Ht7r6jjc0Ma2Md8RoNzAirbnea2U6CBDBkfwu5+xaCGoxr2ljfsFbr+29gcAIxxe7LMGL2x92bw9eHx8yzKeZxNdCrg9hrCEqt/wOUu/tLrWbZ3zaHAet939HCYt/v0cB/tdr/keFyHXkljP1gglL+C+6+O9x2y7REz/fH9d6Ef1Suc/cPENS4/AS4KfZ0RyujgU+22s9jgKEx88Tzve5s3K3XHc/7K3kmFY2GROL1X8BBwAx332RmhxM0pLKYeUbGPB4FNABbW01fC/Q3s77uvrPVNja2sY5YewhOF7SITexrgefc/aS49mZfvwBWAq+1Wt8qdx/fzjL7i6VFbGLdABzS8iQsAY8kOPXQFbcBzwA/bOO1/W3TgeFmZjF/AEYRNCSEYP9/4u4/STQgd681s9kEtTFD3X1p+NIL4bRDaT/5J23o0vDP0XVm9kNgEvBmG+tfS1Cy/8J+VtXe9zoZRgIt788ogs8MOv5+aYjXPKKSv6RLkZmVxtwKCVpO1wA7wwZPP2hjuc+Y2SQz60FQkv5H68v73H0j8BjB+fh+ZlZkZi3ngu8FLo5ZR+ttzAfODGshDgQ+F/PaP4EJZnZBuM4iMztyPyW+2Jh2Ar8CYhtOvQbssqDRXnczKzCzg83syJhYPmpB48UhBOfV9+de4GNmdoKZFRH8maoDXu4ovg48R9BG4vcJbvM/BOevL7egMeKZBC3kW/wZuMzMZligp5l9zMx6xxnX8wTvSez+vRhO2+Tub7exDEAFQfuITjGzK8LGcd3D/bqI4Lvb0uK/9frvIDjtc3L4GZeGy4+ImafD73UXfC/8Pk8maBtwTzh9Pvv/fnXpfZLsouQv6fIoQaJvuV0N/B/B+eKtBNW6j7ex3O3ALQRVnaXA5W3MA3ABQelpKbCZ8IfN3R8Lt/MMsCK8j/UboJ7gh+9WgsZhhMtWETSaOoeg9LSJ4NxvPA3UAH4L7P1BD3/cTyM4R7uKYL//ApTF7OsC4B3gSd790W6Tuy8jOL/8+3BdpxE02KqPM7721uvu/nR4LjzubYbbPZOg4dwOgvYB98csO4fgvP8fwtdX0HEDxFjPETRyezFm2ovhtP1V+f8VmBRWwT+YwPZa1BD8kdtEsM9fAc5q6UeAoE3A/4Trv9Ld1wKnE5zS2UJQE/BN9v29jfd73RnPEby3TwO/dPcnY7a5v+/XPvuRxHgkA9m+p+dEMoeZ/Ru4w93/kuT1OjDe3Vckc70i8Ujh93oMwZ/KIndvTOa6Jfeo5C8iIpJn0pr8zWymBR2lrDCzq/Yz35Fm1mRmHV1SJSIiIglKW7V/ePnWcoKGROsIrv89192XtDHfU0AtcFN4rbCIiIgkSTpL/tOBFe6+MmwYdDdBo5jWvkbQkcrmNMYmIiKSN9KZ/Iezb+cT69i3MxLCbjE/AdyQxrhERETySjo7+bE2prU+5/B/wLfdvSmm++z3rigYrONSgJ49e06dOHFismIUERHJeHPnzt3q7gM7nrNt6Uz+69i3V6sRvNvzVItpwN1h4i8n6JCi0d0fjJ0pHKzjRoBp06b5nDlzUhWziIhIxjGzRLoqf490Jv/ZwHgzG0vQFeg5BKNT7eXuY1sem9ktwD9bJ34RyT3Lly8HYMKECRFHIpIf0pb83b3RzL4KPAEUELTkf8PMLgtf13l+ERGRNEjrwD7u/ihBN6+x09pM+u5+cTpiEhERyTfq4U9ERCTPKPmLiIjkGSV/ERGRPJPWc/4iIm1RK3+R9FLJX0REJM8o+YuIiOQZJX8Ridzq1atZvbpLHZaJSAJ0zl9EIldXVxd1CCJ5RSV/ERGRPKPkLyIikmeU/EVERPKMkr+IiEieUfIXERHJMwm39jeznkCtuzelIB4RyUNlZWVRhyCSVzpM/mbWDTgHOB84EqgDSsxsC8HwvDe6+1spjVJEctrgwYOjDkEkr8RT7f8scADwHWCIu49090HAscArwM/M7DMpjFFERESSKJ5q/xPdvaH1RHffDtwH3GdmRUmPTETyRm1tLQClpaURRyKSHzpM/m0lfjO7G2gAHNjk7t9KQWwikifWrFkDaHQ/kXTpbPe+/3H33wKY2YAkxiMiIiIp1tnkf7qZNQNPuPvyZAYkIiIiqdXZ6/wvAN4GzjKzvyQxHhEREUmxhJO/mV0DfBnoCfzD3T+fwLIzzWyZma0ws6vaeP10M1toZvPNbI6ZHZNofCIiIrJ/CVf7u/v3zWwwcARByf8Ad/9CR8uZWQFwHXASsA6YbWaz3H1JzGxPA7Pc3c3sUOBeYGKiMYqIiEj74unk53pgEbAQWOTuu9y9Ang8vMVrOrDC3VeG670bOB3Ym/zdfXfM/D0JriYQERGRJIqn5D8fOJSgl7+DzayKff8M3B3ntoYDa2OerwNmtJ7JzD4B/BQYBHwsznWLSBYbNWpU1CGI5JV4rvO/Mfa5mY0g+DNwCEFyjjf5W1urb2N7DwAPmNkHgR8BJ75nRWaXApeCfjREcoE69xFJr3iq/c3d9yZpd19HUGp/tL152rEOGBnzfASwob2Z3f15MzvAzMrdfWur124EbgSYNm2aTg2IiIgkIK6+/c3sa2a2TxHbzIrN7HgzuxW4KI71zAbGm9lYMysmOI0wq9U6DzQzCx9PAYqBbfHsiIhkr4qKCioqKqIOQyRvxHPOfybwWeAuMxsL7AS6E/xxeBL4jbvP72gl7t5oZl8FngAKgJvc/Q0zuyx8/QbgLOBCM2sAaoBPx1GjICJZrrKyEtDofiLpYonk1nAAn3Kgxt13piqoREybNs3nzJkTdRgi0gXLlwcdhapvf5H4mNlcd5/W2eUTus4/HORnY2c3JiIiItHrbPe+IiIikqWU/EVERPJM3MnfzK6NZ5qIiIhktkRK/ie1Me2UZAUiIvmrpKSEkpKSqMMQyRvxdPLzJYJR/MaZ2cKYl3oDL6UqMBHJH6NHj446BJG8Ek9r/78BjxH0tx87DG+Vu29PSVQiIiKSMvH07V8JVALnpj4cERERSbW4r/M3sxKCHvjGxC7n7tckPywRySfq5EckvRLp5OchghqAuUBdasIRERGRVEsk+Y9w95kpi0RERETSIpFL/V42s0NSFomIiIikRSIl/2OAS8xsJUG1vwHu7oemJDIRERFJiUSSvzr0ERERyQGJVPuvAY4FLnL31YADGnxbREQkyySS/K8Hjubd6/2rgOuSHpGI5J3BgwczeLDKEiLpkki1/wx3n2Jm8wDcfYeZFacoLhHJI2VlZVGHIJJXEin5N5hZAUF1P2Y2EGhOSVQiIiKSMokk/98BDwCDzOwnwIvA/6YkKhHJK5WVlVRWVkYdhkjeiKva38wMeJ6gd78TCC7zO8Pd30xhbCKSJyoqKgBV/4ukS1zJ393dzB5096nA0hTHJCIiIimUSLX/K2Z2ZFc2ZmYzzWyZma0ws6vaeP18M1sY3l42s8O6sj0RERF5r0Ra+x8HfNHMVgN7SLCHv7Cx4HXAScA6YLaZzXL3JTGzrQI+FF5JcApwIzAjgRhFRESkA4mc878MWN2FbU0HVrj7ynCddwOnA3uTv7u/HDP/K8CILmyva3ZtgPo9kW1eJK/seCe432qRhiGS8fqNgYKiLq8mkXP+vwnP+XfWcGBtzPN17L9U/zngsS5sr/M2L4XrVeEgkjbbmoL7AQXRxiGS6a5YDH1Hdnk1iVT7v2JmR7r77E5uq62/9N7mjGbHEST/Y9p5/VLgUoBRo0Z1Mpz9qNoQ3H/oKigfn/z1i8i+3gmPuTHDoo1DJNP16J+U1SR6zv8yM3uHTpzzJyjpx/5dGQFsaD2TmR0K/AU4xd23tbUid7+RoD0A06ZNa/MPRJc01Ab3B82EYUckffUisq8JGixcJK3SOarfbGC8mY0F1gPnAOfFzmBmo4D7gQvcfXkXt9d5DdXBfVGPyEIQERFJlUSS/0XtTL8mnoXdvdHMvgo8ARQAN7n7G2Z2Wfj6DcD3gQHA9UEbQxrdfVoCMSZHY1jyLyxN+6ZFRERSLZHkH9v0vRQ4FUiohz93fxR4tNW0G2Iefx74fCLrTImGmuBeJX+RtFi9OriQaPTo0RFHIpIf4k7+7v6r2Odm9ktgVtIjygR7k79K/iLpUFdXF3UIInklkR7+WusBjEtWIBmlJfkXdo82DhERkRSIu+RvZot499K8AmAgcZ7vzzqNNdCtCAoSOSsiIiKSHRLJbqfGPG4EKty9McnxZIaGGp3vFxGRnNVh8jezA4HB7v5Sq+nHmtkGd387ZdFFpaFG5/tFRCRnxXPO//+Aqjam14Sv5Z6GGijS+X4REclN8VT7j3H3ha0nuvscMxuT/JAyQGONGvuJpFFZWVnUIYjklXiS//7qv3MzQ6rkL5JWgwcPjjoEkbwST7X/bDP7QuuJZvY5YG7yQ8oADbVK/iIikrPiKflfATxgZufzbrKfBhQDn0hRXNFqqE7ayEki0rHa2qBL7dJSNbQVSYcOk7+7VwDvD4fZPTic/Ii7P5PSyKLUqJK/SDqtWbMGgAkTJkQciUh+SKR732eBZ1MYS+ZoqFaDPxERyVld6d43d+mcv4iI5DAl/7aotb+IiOQwJf+2NFQr+YuISM6KO/mb2bXxTMt6TY3Q3KBz/iIikrMSKfmf1Ma0U5IVSMZoDIfzVclfRERyVDwD+3wJ+DJwgJnFdvPbG3g5VYFFpiG43ljJXyR9Ro0aFXUIInklnkv9/gY8BvwU+DZg4fQqd9+eqsAi01Ad3Cv5i6SNOvcRSa94OvmpBCrNbClwcexrZoa7X5Oi2KLRGJb8C/VjJCIiuSnuTn6A3TGPS4FTgTeTG04G2Fvy7xFtHCJ5pKKiAtAAPyLpEneDP3f/VcztJ8CHgeGJbMzMZprZMjNbYWZXtfH6RDP7j5nVmdmViaw7afae81fJXyRdKisrqaysjDoMkbyRSMm/tR7AuHhnNrMC4DqCqwbWEYwWOMvdl8TMth24HDijC3F1jUr+IiKS4+JO/ma2CPDwaQEwEEjkfP90YIW7rwzXdzdwOrA3+bv7ZmCzmX0sgfUml875i4hIjkuk5H9qzONGoMLdGxNYfjiwNub5OmBGAsunR0PLdf4q+YuISG5KJPlXEFzvfwxBDcALZnaDu9fGuby1Mc3bmNbxiswuBS6FFFwfvDf5q+QvIiK5KZEe/m4DJgO/B/4ATAJuT2D5dcDImOcjgA0JLL+Xu9/o7tPcfdrAgQM7s4r2qeQvIiI5LpGS/0HufljM82fNbEECy88GxpvZWGA9cA5wXgLLp0dL97465y+SNiUlJVGHIJJXEkn+88zsKHd/BcDMZgAvxbuwuzea2VeBJwgaDN7k7m+Y2WXh6zeY2RBgDtAHaDazK4BJ7r4rgTi7pkF9+4uk2+jRo6MOQSSvJJL8ZwAXmtma8Pko4M2WqwDc/dCOVuDujwKPtpp2Q8zjTQSnA6LTUAMFxdCtINIwREREUiWR5D8zZVFkkoYalfpFRCSnxZ383X11KgPJGI01auwnkmbLly8HYMKECRFHIpIfEunkpwQ4CxgTu1zODezTUKPGfiIiktMSqfZ/CKgE5gJ1qQknAzSo5C8iIrktkeQ/wt1z/7x/Q406+BERkZyWSCc/L5vZISmLJFM01qrkLyIiOS2Rkv8xwCVmtpKg2t+I8xK/rNJQDT3Ko45CREQkZRK91M/oZH/8WUOX+omISI7rMPmbWRVtJ/yWPwJ9kh1UpJT8RdJu8ODBUYcgklc6TP7u3jsdgWQMJX+RtCsrK4s6BJG8kkiDv/zQWAuFSv4iIpK7lPxba6hWyV8kzSorK6msrIw6DJG8kUiDv9zX1ADNjUr+ImlWUVEBqPpfJF1U8o+l4XxFRCQPKPnHaqwN7tW3v4iI5DAl/1gN1cG9evgTEZEcpuQfqyEs+atvfxERyWFK/rFU8hcRkTyg5B9L5/xFRCQP6FK/WCr5i0RiwoQJUYcgkldU8o+lc/4iIpIH0pr8zWymmS0zsxVmdlUbr5uZ/S58faGZTUlnfO9e56+Sv4iI5K60JX8zKwCuA04BJgHnmtmkVrOdAowPb5cCf0xXfAA0hslf5/xF0mr16tWsXr066jBE8kY6z/lPB1a4+0oAM7sbOB1YEjPP6cBt7u7AK2bW18yGuvvGdtfaUA0b5iUnwq1vBfcq+YukVV1dXdQhiOSVdCb/4cDamOfrgBlxzDMcaD/5b1kGN344ORECdCuC4p7JW5+IiEiGSWfytzameSfmwcwuJTgtAFBnP9y1uIux7esHGdW3fzmwNeogUkj7l72SuW8l4X0mVQHk8mcH2r9sd1BXFk5n8l8HjIx5PgLY0Il5cPcbgRsBzGyOu09LbqiZQ/uX3XJ5/5K5b2Y2AcDdlydjfcmQy58daP+ynZnN6cry6WztPxsYb2ZjzawYOAeY1WqeWcCFYav/o4DK/Z7vFxERkYSlreTv7o1m9lXgCaAAuMnd3zCzy8LXbwAeBT4KrACqgUvSFZ+IiEi+SGsPf+7+KEGCj512Q8xjB76S4GpvTEJomUz7l91yef+SuW+VSVxXsuTyZwfav2zXpf2zIN+KiIhIvlD3viIiInlGyV9EImdmpWamrjVF0kTJX0QywajwJiJpoOQvIiKSZ5T8RURE8oySv4iISJ5JOPmbWc9weF4RERHJQh0mfzPrZmbnmdkjZrYZWApsNLM3zOwXZjY+9WGKiIhIssRT8n8WOAD4DjDE3Ue6+yDgWOAV4Gdm9pkUxigiIiJJ1GEPf2ZW5O4NXZ1HRKQ9Ldf4u3tt1LGI5INOde9rZpOA0cAid1+X9KhEREQkZTrb2v+HQG/gUjO7NYnxiIiISIp1tuR/qbvn+ohJIpImZjYYwN0roo5FJB90NvnfAvQBtgFvuvuvkxxX3MrLy33MmDFRbV5EkqC2NjjVX1qq7v1F4jF37tyt7j6ws8sXdnK5xe7+SzMrBCZ3duPJMGbMGObMmRNlCCLSRcuXLwdgwoQJEUcikh3MbHVXlu9s8j/VzOqAJ9x9QVcCEBERkfTqbIO/TwNvAWea2Z+TGI+IiIikWGdL/t8Herr7xWZ2cjIDEhERkdTqbMm/HlgZPj4uSbGIiIhIGnS25F8NlJlZETAqifGISB4qKSmJOgSRvNLZ5P8D4FLgOuBvyQtHRPLR6NGjow5BJK90NvlPAFYBs9S9r4iISHZR974iIiJ5prMl/6fc/V7g3mQGIyL5SZ38iKRXZ5P/+81sJhnQva+IiIgkJuu79xUREZHEqHtfERGRPNNhgz8za2uYLXXvKyIikqXiKflvNLPNwMKY2wvu/jjweCqDExERkeTrsOTv7v2AmcAd4aTPAIvN7C4zK0tlcCIiIpJ8cZ3zd/dVBJ36PARgZgZ8F/g/4JJUBSci+WHw4MFRhyCSVzrV4M/dHfixmb2Z5HhEJA+VlakSUSSd4mnw9w0zO9HMBrWaXgK01RhQREREMlg8Jf8hwInAIeEofguBt4EjgftSGJuI5InKykpANQAi6dJh8nf3b7U8NrO+wCHAQcD97v5U6kITkXxRUVEBKPmLpEuHyd/MLDzHj7vvBF4Ib23OIyIiIpktnlH9njWzr5nZqNiJZlZsZseHo/pdlJrwREREJNniSf4zgSbgLjPbYGZLzGwVQQ9/5wK/cfdbOlqJmd1kZpvNbHE7r5uZ/c7MVpjZQjObksB+iIiISJziOedfC1wPXB82+CsHasJTAIm4BfgDcFs7r58CjA9vM4A/hvciIiKSRAld5+/uDcDGzmzI3Z83szH7meV04Law7cArZtbXzIa6+363V1VVxb///e82X5swYQLDhg0DYMOGDXvHDG/Lhz/84b2P586dS1VVVZvzDR06lIMOOmjvtufOndvuOqdOnUrv3r0BWLZsGRs3tr0rvXv3ZurUqXuft7c/oH3SPmXXPjU3O/957TW27dhFfVMz9Y3hLXzcu/9ABo0Yy8q3N9FQV8Padesp6GYZvU+Qe58TaJ9yYZ8S0dlR/VJhOLA25vm6cNp73mUzuxS4FNQzmEiyuDs19U3U1DdRXd/InvomahqaqGtoorahmQW7ulNSVkN1XSMbN25k/eqV1DU2UVvfTF1TE7X1TdQ1NlPb0ETRCw1U1zdS29BM3aYVeH11m9ss6NmfogE7aNi+nub6Gn54yjgmDO6d5j0XiV59U8ux9+6t5VhcVbSK6vom9tQ1smLJ21Tu2tXl7Vk6G+mHJf9/uvvBbbz2CPBTd38xfP408C13b//vGDBt2jSfM2dOKsIVyTrNzU5lTQM7quvZUd3Azpj7ndUN7KptoKq2karaBnbVNu59XFXbyO66RpqaO/49MIMeRQX0KCmkR3EBPYpb7gvo2fK4JJjevaiA0qICuhd1ozR8XFrUjZKiAkoLg8fdiwtYXrGby++axx2fm8Ex48vT8E6JJFdzs1NV2xgee8Hx1nIcVlbXt3m8Ve09Hhupb2rucBsF3YyexQX0LCnklf8+ca67T+tsvJlU8l8HjIx5PgLYEFEsIhmhsamZ7Xvq2VxVx5bddWwN77fvfjepb4/5oamsaaC9//PdDHqXFtG7tHDv/fC+pfQu7R1OK3zP631KC+lZUkjP4kK6h8m9tKgbwfAeyVPbEPzwNcTxAyiSDk3Nzo7qerZU1e29bd1dx7Y99ezY897jr7Kmod0/z2bQq6SQPqVF9CoJjrXyXsWMLe9Jr/DY6xMec8Hr7z7uU1pEr9JCepYUUFzw7rFn/921/YvnOv8qoK09MoJu/vt0LYS9ZgFfNbO7CRr6VXZ0vl8kWzU1O1uq6thQWcPGnbVsrKx590dm974/NG0l8+5FBfTrUUTfHsX061nEsL7d6d+jeJ9pfXsU0y+c1q9nMb1LCpOetJOlqCCIK57Sj0hXNDc72/bUs7Gyhg3hsbc5JsG3HIPb99S3mcxLCrvRr0cxfXsU0a9HMROH9A6PtaLweHvv8dentIhu7bRliUo8rf2TcgLOzO4CPgyUm9k64AdAUbiNG4BHgY8CK4BqNFqgZLHKmgbWbq9m/c4aNu6sYWNlLRsqa/c+rthVS2OrH5biwm4M7FXCwN4ljOjXgyNG9WNg7+B5ML2Ygb1KKe9dTI/iTKq067otG9bRWLlZJX/psj11jazdUc36HTX7HHMbwvtNlbXv+ZNZVGCUh8fe0LJSDh1Rtvd5y63lec/igoz9E52IhH5BzKwfwaV4ewf0cffn41nW3c/t4HUHvpJIPCJRaW52Nu2qZc32atZsq2b19j2s3lbN2u3VrN5ezc7qhn3mLy7oxpCyUoaWlTJ9bH+GlpUytG93hpWVMrSsO8P6llLWvSgnflQ6o7mpAW9qoL5RyV/2z93ZsrsuONa2Bbc124Pb6m3VbN1dt8/8hd2MwX1KGda3lMNH9mXoIaUMK+vO0LJShvXtzpCyUgb0LM67Yy/u5G9mnwe+TnAufj5wFPAf4PiURCaSAWobmnhn2x5WbN69z23V1j3UxSSqgm7G8L7dGT2gBx87ZCijB/RgVP8eDOvbnaFl3RnQszjjqv0ySVFB0N+YSv7SoqGpmdXbqnl7S3DMvb15Nyu2BPd76pv2zmcGw8q6M6p/D06YOIhR4bE3ol93hvXtTnmvknYvH81niZT8v04wkt8r7n6cmU0EfpiasETSq6nZWbV1N29s2MWSjbtYURH80KzdXk1L7bwZjOjXnQMH9uKYA8sZU96T0QN6MLp/T4b1LaWwIJ4OM6UtRd2C966+SUOE5JvmZmftjmqWbNjFmxt3sayiire37OGdrXv2OTU2tKyUAwf14pPTRjK2vCejBvRgdP8eDO/XnZLCggj3IDslkvxr3b3WzDCzEndfamYHpSwykRTZU9fI0k1VLNm4iyVhsl+2adfeFudFBca48l4cPKyM0w8bxgGDenHgoF6MK+9F92L9yKRCS4O/BlX757TahiaWV1TtTfRLNu7izY1V7K5rBIIatNEDenDgwF58ZNJgDmw59gb2oldJbrVziVoi7+a6cEjfB4GnzGwHuhRPMlx9YzNLN+1i/tqdzF+zk/nrdrJq6569LejLuhcxaWgfzp8xmklD+zBpWB8OGNiL4kKV4tOpsCX5q9o/ZzQ1O29trgqOu7XB7a3Nu/e2oO9VUsj7hvbmrCnDmTSsD+8b2ocJg3tTWqQ/2OkQd/J390+ED682s2eBMuDxlEQl0klbquqY/c525ryzg/lrd7B4w669jcjKe5Vw+Mi+nHH48L2JfmhZad419MlELadM1OAve1VWNzBn9XZmh8feonWVe8/Nl3Uv4vCRfTlp0uC9x97Ifj3UDiZCnapHcffnkh2ISGes31nDa6u28dqq7by6ajsrt+wBgmtxDxlexoVHjebwUX05fGRfhvftrkSfoQb060tBaQ+V/LNIyx/tlmNv6aZduAencCYN7cPZU0eEx14/xgzooWMvw8TTyc+L7n5MG539JLuTH5EO7dhTz0tvb+WF5Vt5ccVW1u+sAaB3aSHTx/Tn09NGMn1sfw4eXra3BblkviFDhlDaZ4Aa/GWw3XWNvPL2Nl54awsvrNi6949296ICpo7ux/87cQLTx/bn8JF9VXWfBeLp5OeY8F6jbUja1Tc2M2/NDl54aysvvLWFhesrcQ+S/QcOKOcLx45l+tgBHDSkty7nyXLFBd1U8s8gTc3O4vWVvPDWFp5/ayuvr95BY7PTvaiAGeP0RzvbJXKd/7Xu/u2Opol0VWV1A88u28xTSyp4bvkWdtc1UtDNOGJkX644YQLHTijn0OFlurQuh9TW1lLQ3KDkH7Hq+kZeeGsrTy2p4Jmlm9m+px6Ag4f34QsfHMex48uZOrqfLq3LAYmc8z8JaJ3oT2ljmkjC1m6v5l9vVvDUkgpeW7WdxmanvFcJpx46lOMmDuLoAwbQp7Qo6jAlRdasWYPv3kp946ioQ8k7W6rqeDo89l5csZW6xmb6lBZy/MRBHDdxEMccWM6AXiVRhylJFs85/y8BXwbGmdnCmJd6Ay+lKjDJfRt21vDwgg08vHADi9cH41MfOKgXX/jgOE6aNJjDR/RVa+A8UlRgGtgnTbbtruPRxZt4eMEGZr+zHfegA6vzZozipPcN5six/VWVn+PiKfn/DXgM+ClwVcz0KnffnpKoJGdt213Ho4s2MmvBBma/swOAw0aU8d8fnchJk4YwtrxnxBFKVIoKutGgBn8pU1XbwBNvVPDwgg28uGIrTc3OgYN68fUTxnPy5CFMHNJbLfLzSDwN/iqBSmC/A/OItKe2oYknl1Twj7nreCn80Rk/qBf/ddIETjtsGGOU8AUo7NZNPfwlWWNTM8+/tYW/z1nH00s3U9/YzPC+3bn0g+M47dBhvG+oEn6+SqTBXwlwFjAmdjl3vyb5YUkuWF5Rxd2vreX+eevYWd2w90fn44cNUylD3qOw0NTgL0nWbq/m3jlr+fucdWzaVcuAnsWcN30Upx02jCmj+urYk4Qa/D1EUAMwF6jrYF7JU3vqGnlk4Ubumr2GeWt2UlRgfGTyEM45ciQfOKBc5/ClXUXddM6/K+oam3hqSQX3zF7Liyu2AvChCQO5+uOTOH7iYHVZLftIJPmPcPeZKYtEstra7dXc/NI73DtnLbvrGjlwUC/+52Pv4xNHDFdLYYlLUUE3de/bCVuq6rjjldXc+epqtu6uZ3jf7lxxwgTOnjaC4X27Rx2eZKhEkv/LZnaIuy9KWTSSVdydOat38NcXVvHkkk10M+Njhw7lwqNHM2VUP1UtStxGjRpF30GbqFXJP25vbtzFX19cxaz5G6hvauaEiYO48P1jOObAcnV4JR1KJPkfA1xiZisJqv1buvc9NCWRScZqaGrm0UUb+euLq1i4rpKy7kV88UMHcNHRYxhSVhp1eJKFSktLKS3tTlWVzijuT3Oz8+yyzfz1xVW8/PY2uhcV8OkjR3LJB8YwbmCvqMOTLJJI8j8lZVFIVqhtaOLvc9Zyw3MrWb+zhnHlPfnRGQdz1pTh9CjWWNvSNUUFavDXnsamZh5ZtJE/PLOCtzbvZkifUr49cyLnTh9J3x7FUYcnWSiRX+w1wPnAOHe/xsxGAUOA1SmJTDJGTX0Tf3ttDTc+/zYVu+qYOrof15w+meMOGqQGfJIUFRUVNOzeQX2jenGM1dDUzAPz1nP9syt4Z1s1Ewb34v8+fTgfO3SoOuGRLkkk+V8PNAPHA9cAVcB9wJEpiEsyQF1jE3e+sobr/72CrbvrOWpcf37zqcM5+oABOp8vSVVZWYnXVlPfpPHDIBhU58F56/nNv5azbkcNk4b24YbPTOEjk4boD7ckRSLJf4a7TzGzeQDuvsPMVN+Ugxqbmrl/3np++6+3WL+zhvcfMIA/fmYCR47pH3VoksOKCo2Gmvyu9nd3nlxSwa+eXMbyit0cPLwPP/z4ZI6fOEh/uCWpEkn+DWZWADiAmQ0kqAmQHNHyw/Pzx5fy9pY9HDaijGvPOpRjxpdHHZrkgcJu+d2972urtvO/j77J/LU7GVfek+vOm8IpB6ukL6mRSPL/HfAAMMjMfgKcDXwvJVFJ2r25cRfXPLyE/6zcxgEDe3LDZ6Zw8uQhKm1I2hQW5Gf3vmu3V/Ozx5byyKKNDC0r5dqzDuGsKSM0ZLWkVNzJ393vNLO5wAkEl/md4e5vpiwySYutu+v41ZPLuWf2Gvp0L+Ka0ydz3vRR+uGRtCsqMOryqLX/7rpGrn92BX95cRUFZnzjpAl84dhxdC8uiDo0yQOJ9O1/rbt/G1jaxjTJMk3Nzp2vruYXTyyjpr6Ji94/hq+fMF6XDUlkgkv9mnD3nK5xcnceWbSRax5ewuaqOs48YjjfnHkQQ8vUG5+kTyLV/icBrRP9KW1Mkwy3eH0l331gEQvWVXLMgeVc/fHJHDhIHYRIdEpKSuheWor7HpqancKC3Ez+q7ft4XsPvcHzy7dwyPAy/nTBVI4Y1S/qsCQPdZj8zexLwJeBcWa2sGUy0At4KYWxSZLtrmvk108u55aXV9G/ZzG/PedwPn7YsJwuZUl2GD16NIPfaYSFS2locgpzrOa7vrGZG59/m98/s4Kigm784LRJXHj0GHXDK5GJp+T/N+Ax4KfAVTHTq9x9e0qikqR7acVWvvWPhWyorOG86aP41skTKeuhDlUkc7R0WlPf1Ex3cif7L15fyZV/X8DSTVV89JAhfP/UyeoGWyLXYfJ390qCoXzPNbPDgGPDl14AlPwz3J66Rn762Jvc8coaxpX35B+XHc3U0bpeXzJPcVjVnysj+zU0NXPdsyv4wzMr6NezmD9fOI2TJg2OOiwRILEGf5cDlwL3h5PuMLMb3f33KYlMuuyVldv45j8WsG5HDZ8/ZixXnnwQpUW5U6KS3LF8+XK2rt8AkBP9+7+5cRf/de8ClmzcxSeOGM4PTpukxrSSURJp8Pd5gl7+9kDQ0h/4D6Dkn2Eampr59VPLueG5txnVvwf3fvFo9c4nGa+l2j+bk7+7c/NL7/Czx5bSp3shf7pgKidPHhJ1WCLvkUjyN6Ap5nlTOE0yyNrt1XztrnnMX7uTc6eP5HunTtKIe5IVWlr4Z2vy37a7jm/+YyHPLN3Mie8bxM/PPoz+PVXal8yUSFa4GXjVzB4In58B/DXpEUmnzVqwge/evwgMrjtvCh87dGjUIYnErbBb2OCvMfu6+H1pxVb+3z3z2VnTwA8/PpkLjx6tq2gkoyXSw9+vzezfwDEEJf5L3H1eqgKT+NU1NnH1rDe467W1TB3dj9+eczgj+vWIOiyRhBS1NPjLopJ/c7Pz26ff4nfPvMW48p7ccsl0Jg3rE3VYIh2K5zr/UuAy4EBgEXC9uzemOjCJz4adNXzpztdZsHYnX/rwAfzXSRPUNa9kpWw7519Z3cAV98zj2WVbOHPKcH58xsE6xSZZI55v6q1AA8GlfacA7wOuSGFMEqeX397K1/42j7rGZm74zFRmHqyGRZK9Wkr+2TC4z5sbd/HF2+eysbKGH51xMJ+ZMUrV/JJV4kn+k9z9EAAz+yvwWmc3ZmYzgd8CBcBf3P1nrV7/MPAQsCqcdL+7X9PZ7eUqd+evL67ip48tZcyAHvzpgmnqnley2uDBgxlUXwJszfhq/4fmr+fb9y2krHsRd196NFNHq3teyT7xJP+Glgfu3tjZf7dmVgBcRzBGwDpgtpnNcvclrWZ9wd1P7dRG8kB9YzPfe3Ax98xZy8zJQ/jlpw6jV4mqGiW7lZWVMWB38LihKTMb/Lk7v/nXW/zu6beYPqY/fzj/CAb1Vk99kp3iyRqHmdmu8LEB3cPnBri7x9u6ZTqwwt1XApjZ3cDpQOvkL+2orG7gS3fO5eW3t3H58QdyxYkT6Ka+wSVH7O3eNwOr/WsbmvjWPxYya8EGPjl1BD/5xCEUF6ptjWSveLr3TVaXcMOBtTHP1wEz2pjvaDNbAGwArnT3N5K0/ay2Zls1l9zyGmu2V/OrTx7GWVNHRB2SSNJUVlZSuyco+mdag79tu+v44u1zmbN6B9+aeRBf+tABOr8vWS+d9cVtHS2t6/deB0a7+24z+yjwIDD+PSsyu5Sgq2FGjRqV5DAzz+trdvD5W+fQ7M4dn5vBjHEDog5JJKkqKirYubMGyKxL/VZt3cNFN71Gxa5a9Z0hOSWd9VbrgJExz0cQlO73cvdd7r47fPwoUGRm5a1X5O43uvs0d582cODAVMYcueeWb+H8P79K79JCHvjyB5T4JWe1VKNnSsl/8fpKzv7jy+yua+SuS49S4pecks7kPxsYb2ZjzawYOAeYFTuDmQ2xsD7NzKaH8W1LY4wZ5eEFG/j8rbMZW96Tf1z2fsaW94w6JJGUKeyWOaP6vbpyG+fe+AqlRQX8/bKjmTJKLfoltyQyqp8B5wPj3P0aMxsFDHH3uC79C68U+CrwBMGlfje5+xtmdln4+g3A2cCXzKwRqAHOcffMbPqbYne8sprvPbSYaaP78ZeLjqSse1HUIYmkVGGGlPz/taSCr/ztdUb0687tn5vBsL7dI41HJBUSOed/PdAMHA9cA1QB9wFHxruCsCr/0VbTboh5/AfgDwnElJOue3YFv3hiGcdPHMR1502he7GG4ZXcV9StZWCf6P7vPzBvHVf+fSEHD+vDzZdM18A8krMSSf4z3H2Kmc0DcPcdYfW9JNFv//UWv/nXck4/fBi//ORhey9/Esl17w7sE03J/x9z1/HNfyzg6HEDuPHCaeo/Q3JaIt/uhrCjHgcws4EENQGSJC2J/6wpI/j52YdSoGv4JY9062YUFVgk1f4tif8DB5Tzl4umUVqk2jbJbYkk/98BDwCDzewnBOfn/yclUeWh3z2txC/5a8KECQAUFaxMe8lfiV/yUSJD+t5pZnOBE8JJZ7j7m6kJK7/8/um3+PVTyzlzynAlfslrRQXd0lryj038f75QiV/yRyKt/UuAKUBZuNwnzQwNvNM1f3rubX4VJv5fnH2YEr/ktaKCbtSnqcHfrAUb9kn8algr+SSRav+HgEpgLlCXmnDyyz2z1/DTx5Zy2mHDlPglr61evRqA4jSd8//3ss184575HDm6vxK/5KVEkv8Id5+ZskjyzOOLN/Gd+xfxoQkD+dUnlfglv9XVBeWJ4sLUV/vPXb2DL93xOuMH9+YvFyvxS35K5Dqyl83skJRFkkdefnsrl981j8NH9uWPn5mi0cFEQkUF3VLa4G/Zpio+e8tsBvcp4bbPTqdPqTrPkvyUSMn/GOBiM1tFUO3fMqTvoSmJLEctWlfJF26dw5jyHtx08ZH0KNa1xCItUtngb+32ai7466uUFHbj9s/NYGDvkpRsRyQbJJJ5TklZFHli7fZqLr75Nfr2KOa2z86gbw/1kSQSq6gwNQ3+KqsbuOjm16htaOLvl72fkf17JH0bItkkkUv9VqcykFy3q7aBz94ym4amZu697GiGlJVGHZJIxikuMBqSXO1f39jMZXfMZe32au78/FEcNKR3Utcvko0SqnM2s37AeGBv5nL355MdVK5pbGrmK3e+zqqte7jtc9M5YGCvqEMSyUjFhd2oa0he8nd3/ufBRfxn5TZ+/anDmD62f9LWLZLNErnO//PA14ERwHzgKOA/BAP9SDvcnR/MeoMX3trKtWcdwvsPKI86JJGMU1ZWBkBRwU6qahuTtt4/Pb+Se+es4/LjD+TMKSOStl6RbJdIM/OvE4zgt9rdjwOOALakJKocctNL73Dnq2u47EMH8OkjR0UdjkhGGjx4MIMHD05qa//HF2/kZ2E/Gv/vpAlJWadIrkgk+de6ey0Evf25+1LgoNSElRueXbaZHz+yhJmTh/Ctk/VWiXSkOEmt/d/YUMkV98xnyqi+/OLsQzFTPxoisRI557/OzPoCDwJPmdkOYEMqgsoFq7ft4et3zeN9Q/rw608fRjd14iPSrtraWoBwVL+utfbfWV3PZXfMpV+PYv50gfrrF2lLXMnfgr/Nl7v7TuBqM3uWoI//x1MYW9aqqW/isjtex8z40wVTdS2/SAfWrFkDdL2Hv6Zm5+t3z6eiso57vniUruUXaUdcWcnd3cweBKaGz59LZVDZzN357wcWsXTTLm66+EhdTyySgK6e8//tv5bz3PIt/OQTB3PEqH5JjEwktyRyzv8VMzsyZZHkiNtfWc0D89ZzxQkTOO6gQVGHI5JVglH9Opf8/7Wkgt89s4JPTh3BedPVuFZkfxKpjz4OuMzM3gH2oO5932Pu6u1c8/ASTpg4iK8df2DU4Yhknc5W+6/auof/d898Dh7ehx+dcbAa+Il0QN37JsmOPfV85c55DO/XnV9/+nA18BPphM40+KttaOLLd75OQYHxx/OnqoGfSBwSSf4VwJcJBvhx4EXgj6kIKtu4O9+6byHb99Rz/5ffT1l3jRQm0hlFBd1oanaamj3uYa6vfXwpb27cxV8vmqY2NiJxSuSc/23AZOD3wB+A9wG3pyKobHPHK6t5akkF35p5EAcPL4s6HJGs1TK8dbxV/88sreDml97h4veP4YT3DU5laCI5JZGS/0HufljM82fNbEGyA8o2Szft4kePvMmHDxrIZz8wNupwRLLSqFFBA73iiqDrkPqm5g6r7zfvquXKvy9k4pDeXHXKxJTHKJJLEin5zzOzo1qemNkM4KXkh5Q9ahuauPyuefQpLeKXn1RHPiKdVVpaSmlpKUUFYcm/g8v9mpudb9y7gOr6Rv5w3hE6zy+SoA5L/ma2iOAcfxFwoZmtCZ+PBpakNrzM9uNHlrC8Yje3fXY65b3UmYhIV+1N/h00+rvxhZW8uGIrPz3zEA4cpCF6RRIVT7X/qSmPIgs9/WYFd7yyhks/OI4PThgYdTgiWa2iogIIWvvD/s/5L15fyS+fWMZHDxnCOUeOTEt8Irmmw+Tv7qvTEUg22Vldz1X3L2LikN5c+REN2CPSVZWVlQAUF/YEoK6dav/6xmau/PsC+vUs5n8/cYiu5xfppLgb/JnZNOC7BNX9heRxJz8/fHgJO/bUc8slR+5tnSwiXVdcsP/W/n945i2WbqriLxdOo2+P4nSGJpJTEmntfyfwTWARkJwBt7PQk29s4oF56/n6CeOZPEyX9YkkU9F+kv+idZVc9++3OXPKcE6cpMv6RLoikeS/xd1npSySLLBjTz3//cBi3je0D185Tt33iiRbUTvX+dc1NnHl3xdQ3quYH5w6OYrQRHJKIsn/B2b2F+BpoK5lorvfn/SoMtTVD7/Bzup6bv2sqvtFUqGlwV99476t/X//9AqWVVRx08XTKOuhHjRFuiqR5H8JMJHgkr+Wv+UO5EXyf+KNTTw0fwNXnKjqfpFUKQn/VMeO7LdoXSV/fO5tzpoyguMnqrpfJBkSSf6HufshKYskg+2qbeB7Dy5mkqr7RVKipCToJ6O2VSc/jU3NfPu+hZT3Kub7p02KLD6RXJNI3fUrZpaXR9+vn1zOlt11/OysQ/Y2SBKR5Bk9ejSjR49+T4O/W/+zmiUbd3H1aZM1YJZIEiVS8j8GuMjMVhGc88+LS/0WrtvJbf95hwuPGs2hI/pGHY5ITmtJ/vVNzWysrOHXTy7juIMGMvPgIRFHJpJbEkn+M1MWRYZqana++8BiBvQq4b9OVmc+IqlWHNO97w9nLaGx2bnm9IPVmY9IkiVSh70GOBa4KOz1z4GEWt+Y2UwzW2ZmK8zsqjZeNzP7Xfj6QjObksj6k+2OV1azaH0l3z91En1KVeUokirLly9n+fLle6+ieXzxJh5/YxOXnzCekf17RBydSO5JJPlfDxwNnBs+rwKui3dhMysI5z8FmASc20YbglOA8eHtUuCPCcSXVBW7avnFE8s4dnw5px46NKowRPJKy6V+/3qzgvGDevGFY8dFHJFIbkqk2n+Gu08xs3kA7r7DzBLpX3M6sMLdVwKY2d3A6ew7MuDpwG3u7gQNDPua2VB339jeShuanIpdtQmEEZ9rHl5CfVMzP1KVo0jaFMX0n/HjMw5WfxoiKZJI8m8IS+8OYGYDSayb3+HA2pjn64AZccwzHGg3+S/dtIsZ//t0AmHE7/+dOIEx5T1Tsm4Rea/SwgJKCrvx8cOGMWPcgKjDEclZiST/3wEPAIPN7CfA2cD3Eli+reJz60G745kHM7uU4LQAQN3qa09dnEAccbviWrgiFStOTDmwNeogUkj7l72SuW8l4X0dwC/DW8Ry+bMD7V+261Ir9LiTv7vfaWZzgRPCSae7+9IEtrUOiB18ewSwoRPz4O43AjcCmNkcd5+WQBxZRfuX3XJ5/5K5b2Y2AcDdlydjfcmQy58daP+ynZnN6cryHSZ/M2s9mE9L6fxkM8PdPx7ntmYD481sLLAeOAc4r9U8s4Cvhu0BZgCV+zvfLyIiIomLp+R/NMF5+LuAV2m7ar5D7t5oZl8FngAKgJvc/Q0zuyx8/QbgUeCjwAqgmmA8ARHJfRVRByCST+JJ/kOAkwgu8TsPeAS4y93fSHRj7v4oQYKPnXZDzGMHvpLgam9MNI4so/3Lbrm8f0nbN3evTNa6kiiXPzvQ/mW7Lu2fBfk2zpnNSgj+BPwCuMbdf9+VjYuIiEj6xdXgL0z6HyNI/GMIWv7nxVC+IpJ6ZlYGGVsDIJJz4mnwdytwMPAY8EN3T8lldSKS11q6ClfyF0mDDqv9zawZ2BM+jZ25ZVS/PimKTUTyRCZe6ieSyzos+bu7+tcUERHJIRmb2M2sn5kdGnUcIiIiuSajkr+Z/dvM+phZf2ABcLOZ/TrquERERHJJRiV/oMzddwFnAje7+1TgxIhjEhERySmZlvwLzWwo8Cngn1EHIyIikosSGdUvHa4h6P73JXefbWbjgLcijklEUkyt/EXSK6Ee/kRERCT7ZVS1v5lNMLOnzWxx+PxQM/ufqOMSERHJJRmV/IE/A98BGgDcfSHB0L8iksPMbLSZjY46DpF8kWnn/Hu4+2tm+4wa3BhVMCKSNiVRByCSTzIt+W81swMIuxE2s7OBjftboLy83MeMGZOG0EQkVSZPngzAtGnTIo5EJDvMnTt3q7sP7OzymZb8v0IwRvFEM1sPrALO398CY8aMYc6cOemITURSZPnyoLH/hAkTIo5EJDuY2equLJ9pyb+fu59oZj2Bbu5eZWanAV3aSREREXlXxjX4M7ND3H1PmPjPAdTaX0REJIkyreR/NvAPMzsfOAa4EPhItCGJiIjkloxK/u6+MiztPwisBT7i7jXRRiUiqVZWVhZ1CCJ5JSOSv5ktImzhH+oPFACvmhnurqF9RXLY4MGDow5BJK9kRPIHTo06ABERkXyRKcl/h7vvMrP+UQciIulXW1sLQGlpacSRiOSHTEn+fyMo/c8lqP6P7eLPgXFRBCUi6bFmzRpA1/mLpEtGJH93PzW8Hxt1LCIiIrkuI5J/LDM7k+AyPwdecPcHo41IREQkt2RUJz9mdj1wGbAIWAxcZmbXRRuViIhIbsm0kv+HgIPdvWVgn1sJ/giIiIhIkmRa8l8GjOLdvvxHAgujC0dE0uGCCy4A4NVXX404EpH8kGnJfwDwppm9Fj4/EviPmc0CcPePRxaZiIhIjsi05P/9qAMQkfQrKSmJOgSRvJJpyX8OUOPuzWY2AZgIPObuDRHHJSIp1K1bRrU9Fsl5mXbEPQ+Umtlw4GngEuCWSCMSERHJMZmW/M3dq4Ezgd+7+yeAyRHHJCIpVl9fT319fdRhiOSNjEv+ZnY0cD7wSDitIMJ4RCQNmpqaaGpqijoMkbyRacn/68B3gAfc/Q0zGwc8G3FMIiIiOSWjGvy5+/ME5/1bnq8ELo8uIhERkdyTaSV/ERERSTElfxERkTyTUcnfzD4QzzQRERHpvIxK/sDv45wmIjnEzDCzqMMQyRsZ0eAvvLzv/cBAM/tGzEt90KV+IjmvtLQ06hBE8kpGJH+gGOhFEE/vmOm7gLMjiUhERCRHZUTyd/fngOfM7BZ3X93hAiIiItJpGZH8Y9xiZt56orsfH0UwIpIeNTU1UYcgklcyLflfGfO4FDgLaIwoFhERkZyUUcnf3ee2mvSSmT0XSTAiIiI5KqOSv5n1j3naDZgKDIkoHBERkZyUUckfmAs4YATV/auAz0UakYik3O233x51CCJ5JaOSv7uPjToGERGRXJdRyd/MSoEvA8cQ1AC8CPzR3WsjDUxERCSHZFTyB24Dqni3S99zgduBT0YWkYik3ODBg6MOQSSvZFryP8jdD4t5/qyZLYgsGhFJi7KysqhDEMkrmTawzzwzO6rliZnNAF6KMB4REZGck2kl/xnAhWa2Jnw+CnjTzBYB7u6HRheaiKRKZWUloBoAkXTJtOQ/M+oARCT9KioqACV/kXTJtOT/Y3e/IHaCmd3eepqIiIh0Xqad858c+8TMCgl6+RMREZEkyYjkb2bfMbMq4FAz22VmVeHzCuChiMMTERHJKRmR/N39p+7eG/iFu/dx997hbYC7fyfq+ERERHJJpp3zf8zMPth6ors/H0UwIiIiuSjTkv83Yx6XAtMJBvs5PppwREREco+5e9QxtMvMRgI/d/dz9zNPFbAsfVGlXTmwNeogUkj7l71yed9A+5ftcn3/DgpPl3dKppX8W1sHHNzBPMvcfVo6gomCmc3R/mWvXN6/XN430P5lu3zYv64sn1HJ38x+TzCaHwSNEQ8H1Le/iIhIEmVU8gdi/8k0Ane5u/r2FxERSaJMS/73AAcSlP7fdvfaOJa5MbUhRU77l91yef9yed9A+5fttH/7kREN/sKe/P4X+CywmqDKfwRwM/Bdd2+IMDwREZGckhGd/AC/APoDY919qrsfARwA9AV+GWVgIiIiuSZTkv+pwBfcvaplgrvvAr4EfLS9hcxsppktM7MVZnZVGuJMGTMbaWbPmtmbZvaGmX09nH61ma03s/nhrd33I9OZ2TtmtijcjznhtP5m9pSZvRXe94s6zs4ws4NiPqP5YTfVV2Tz52dmN5nZZjNbHDOt3c8r7KZ7RXhMnhxN1PFrZ/9+YWZLzWyhmT1gZn3D6WPMrCbmc7whssDj1M7+tft9zKbPr519uydmv94xs/nh9Gz87NrLB8k7/tw98huwPNHXgALgbWAcUExwVcCkqPelC+/BUGBK+Lg3sByYBFwNXBl1fEnax3eA8lbTfg5cFT6+Crg26jiTsJ8FwCZgdDZ/fsAHgSnA4o4+r/C7ugAoAcaGx2ZB1PvQif37CFAYPr42Zv/GxM6XDbd29q/N72O2fX5t7Vur138FfD+LP7v28kHSjr9MKfkvMbMLW080s88AS9tZZjqwwt1Xuns9cDdwegpjTCl33+jur4ePq4A3geHRRpUWpwO3ho9vBc6ILpSkOYGgwerqqAPpCg+61d7eanJ7n9fpwN3uXufuq4AVBMdoxmpr/9z9SXdvDJ++QtD2KCu18/m1J6s+v/3tm5kZ8CngrrQGlUT7yQdJO/4yJfl/BfiKmf3bzH5lZr80s+eAywmq/tsyHFgb83wdOZIszWwMcATwajjpq2E15E3ZWi0ecuBJM5trZpeG0wa7+0YIvvDAoMiiS55z2PeHJ1c+P2j/88rF4/GzwGMxz8ea2Twze87Mjo0qqCRo6/uYS5/fsUCFu78VMy1rP7tW+SBpx19GJH93X+/uM4BrCKqG1wDXuPt0d1/fzmLW1qpSFGLamFkv4D7gCg/aPfyRoPHj4cBGguqsbPUBd58CnELwZ+89gzhlOzMrBj4O/D2clEuf3/7k1PFoZt8l6GvkznDSRmCUB42RvwH8zcz6RBVfF7T3fcylz+9c9v3znbWfXRv5oN1Z25i2388vo67zd/dngGfinH0dMDLm+QhgQ9KDSiMzKyL4oO909/sB3L0i5vU/A/+MKLwuc/cN4f1mM3uAoFqqwsyGuvtGMxsKbI40yK47BXi95XPLpc8v1N7nlTPHo5ldRNAI+QQPT6i6ex1QFz6ea2ZvAxPYt2OyjLef72NOfH4WXDZ+JjC1ZVq2fnZt5QOSePxlRMm/k2YD481sbFjaOgeYFXFMnRaep/or8Ka7/zpm+tCY2T4BLG69bDYws55m1rvlMUHDqsUEn9lF4WwXAQ9FE2HS7FPqyJXPL0Z7n9cs4BwzKzGzscB44LUI4usSM5sJfBv4uLtXx0wfaGYF4eNxBPu3MpooO28/38ec+PyAE4Gl7r6uZUI2fnbt5QOSefxF3aqxiy0iP0rQCvJtgs6AIo+pC/tyDEE1zUJgfnj7KHA7sCicPgsYGnWsndy/cQStURcAb7R8XsAA4GngrfC+f9SxdmEfewDbgLKYaVn7+RH8idkINBCULD63v88L+G54LC4DTok6/k7u3wqCc6ctx+AN4bxnhd/bBcDrwGlRx9/J/Wv3+5hNn19b+xZOvwW4rNW82fjZtZcPknb8ZUQPfyIiIpI+2VztLyIiIp2g5C8iIpJnlPxFRETyjJK/iIhInlHyFxERyTNK/iI5yswGxIxktilmNLfdZnZ9mmI43LJoJEORfJFRPfyJSPK4+zaCblwxs6uB3e7+yzSHcTgwDXg0zdsVkf1QyV8kz5jZh83sn+Hjq83sVjN7MhwD/Uwz+7mZLTKzx8MuRjGzqeGgKHPN7IlWPcW1rPeTZrbYzBaY2fNhz5vXAJ8Oaxw+Hfb0eJOZzQ4HWjk9XPZiM3so3OYyM/tBOt8TkXyj5C8iBwAfIxgW9A7gWXc/BKgBPhb+Afg9cLa7TwVuAn7Sxnq+D5zs7ocRdI9bH067x90Pd/d7CHohe8bdjwSOA34RdvcMwVgP5xPUFnzSzKalZndFRNX+IvKYuzeY2SKgAHg8nL4IGAMcBBwMPBV0OU4BQdeqrb0E3GJm9wL3t/E6BGM6fNzMrgyflwKjwsdPhacqMLP7Cbo4zejBV0SylZK/iLSMeNZsZg3+bp/fzQS/EQa84e5H728l7n6Zmc0gqEWYb2aHtzGbAWe5+7J9JgbLte5rXH2Pi6SIqv1FpCPLgIFmdjQEQ42a2eTWM5nZAe7+qrt/H9hKMMRoFdA7ZrYngK+Fo5ZhZkfEvHaSmfU3s+7AGQQ1CSKSAkr+IrJf4bn7s4FrzWwBwQhj729j1l+EDQUXA88TjKL2LDCppcEf8COgCFgYzvejmOVfJBh1bj5wn7uryl8kRTSqn4hEzswuBqa5+1ejjkUkH6jkLyIikmdU8hcREckzKvmLiIjkGSV/ERGRPKPkLyIikmeU/EVERPKMkr+IiEieUfIXERHJM/8fQLgy8w6fj5YAAAAASUVORK5CYII=",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Initialize inputs and outputs\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.2), 0)\n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1) \n",
        "mem_rec = [mem]\n",
        "spk_rec = [spk_out]\n",
        "\n",
        "# Simulation run across 100 time steps.\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif2(cur_in[step], mem)\n",
        "  mem_rec.append(mem)\n",
        "  spk_rec.append(spk_out)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "plot_cur_mem_spk(cur_in, mem_rec, spk_rec, thr_line=1, vline=109, ylim_max2=1.3, \n",
        "                 title=\"Lapicque Neuron Model With Step Input\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cm5tEp4YEoQm"
      },
      "source": [
        "The membrane potential exponentially rises and then hits the threshold, at which point it resets. We can roughly see this occurs between $105ms < t_{\\rm spk} < 115ms$. As a matter of curiousity, let's see what the spike recording actually consists of:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "id": "tWSGUUsgNr9D"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "tensor([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])\n"
          ]
        }
      ],
      "source": [
        "print(spk_rec[105:115].view(-1))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4xWW-ncoOWrJ"
      },
      "source": [
        "The absence of a spike is represented by $S_{\\rm out}=0$, and the occurrence of a spike is $S_{\\rm out}=1$. Here, the spike occurs at $S_{\\rm out}[t=109]=1$. If you are wondering why each of these entries is stored as a tensor, it is because in future tutorials we will simulate large scale neural networks. Each entry will contain the spike responses of many neurons, and tensors can be loaded into GPU memory to speed up the training process.\n",
        "\n",
        "If $I_{\\rm in}$ is increased, then the membrane potential approaches the threshold $U_{\\rm thr}$ faster:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 26,
      "metadata": {
        "id": "HY6G9HZ1POC7"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Initialize inputs and outputs\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.3), 0)  # increased current\n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1) \n",
        "mem_rec = [mem]\n",
        "spk_rec = [spk_out]\n",
        "\n",
        "# neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif2(cur_in[step], mem)\n",
        "  mem_rec.append(mem)\n",
        "  spk_rec.append(spk_out)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "\n",
        "plot_cur_mem_spk(cur_in, mem_rec, spk_rec, thr_line=1, ylim_max2=1.3, \n",
        "                 title=\"Lapicque Neuron Model With Periodic Firing\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GOjWXepnPleo"
      },
      "source": [
        "A similar increase in firing frequency can also be induced by decreasing the threshold. This requires initializing a new neuron model, but the rest of the code block is the exact same as above:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "id": "HQ0VIBlJPrvr"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# neuron with halved threshold\n",
        "lif3 = snn.Lapicque(R=5.1, C=5e-3, time_step=1e-3, threshold=0.5)\n",
        "\n",
        "# Initialize inputs and outputs\n",
        "cur_in = torch.cat((torch.zeros(10), torch.ones(190)*0.3), 0) \n",
        "mem = torch.zeros(1)\n",
        "spk_out = torch.zeros(1) \n",
        "mem_rec = [mem]\n",
        "spk_rec = [spk_out]\n",
        "\n",
        "# Neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif3(cur_in[step], mem)\n",
        "  mem_rec.append(mem)\n",
        "  spk_rec.append(spk_out)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "plot_cur_mem_spk(cur_in, mem_rec, spk_rec, thr_line=0.5, ylim_max2=1.3, \n",
        "                 title=\"Lapicque Neuron Model With Lower Threshold\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rJwtafQ_Siav"
      },
      "source": [
        "That's what happens for a constant current injection. But in both deep neural networks and in the biological brain, most neurons will be connected to other neurons. They are more likely to receive spikes, rather than injections of constant current. "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sOr9akj9S2Ei"
      },
      "source": [
        "## 3.5 Lapicque: Spike Inputs"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rw_FZDnMS-pc"
      },
      "source": [
        "Let's harness some of the skills we learnt in [Tutorial 1](https://colab.research.google.com/github/jeshraghian/snntorch/blob/tutorials/examples/tutorial_1_spikegen.ipynb), and use the `snntorch.spikegen` module to create some randomly generated input spikes."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "id": "V7AXG4QqTCoZ"
      },
      "outputs": [],
      "source": [
        "# Create a 1-D random spike train. Each element has a probability of 40% of firing.\n",
        "spk_in = spikegen.rate_conv(torch.ones((num_steps)) * 0.40)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5CJxZg1TTNCJ"
      },
      "source": [
        "Run the following code block to see how many spikes have been generated."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "id": "rbhLmpNSTPgK"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "There are 77 total spikes out of 200 time steps.\n"
          ]
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x72 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "print(f\"There are {int(sum(spk_in))} total spikes out of {len(spk_in)} time steps.\")\n",
        "\n",
        "fig = plt.figure(facecolor=\"w\", figsize=(8, 1))\n",
        "ax = fig.add_subplot(111)\n",
        "\n",
        "splt.raster(spk_in.reshape(num_steps, -1), ax, s=100, c=\"black\", marker=\"|\")\n",
        "plt.title(\"Input Spikes\")\n",
        "plt.xlabel(\"Time step\")\n",
        "plt.yticks([])\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "id": "wo2_Voc3TvSc"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 576x432 with 3 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Initialize inputs and outputs\n",
        "mem = torch.ones(1)*0.5\n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec = [mem]\n",
        "spk_rec = [spk_out]\n",
        "\n",
        "# Neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif3(spk_in[step], mem)\n",
        "  spk_rec.append(spk_out)\n",
        "  mem_rec.append(mem)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec = torch.stack(mem_rec)\n",
        "spk_rec = torch.stack(spk_rec)\n",
        "\n",
        "plot_spk_mem_spk(spk_in, mem_rec, spk_out, \"Lapicque's Neuron Model With Input Spikes\")"
      ]
    },
    {
      "attachments": {},
      "cell_type": "markdown",
      "metadata": {
        "id": "lQsH8VOGXF2Q"
      },
      "source": [
        "## 3.6 Lapicque: Reset Mechanisms\n",
        "We already implemented a reset mechanism from scratch, but let's dive a little deeper. This sharp drop of membrane potential promotes a reduction of spike generation, which supplements part of the theory on how brains are so power efficient. Biologically, this drop of membrane potential is known as 'hyperpolarization'. Following that, it is momentarily more difficult to elicit another spike from the neuron. Here, we use a reset mechanism to model hyperpolarization.\n",
        "\n",
        "There are two ways to implement the reset mechanism:\n",
        "\n",
        "1.  *reset by subtraction* (default) $-$ subtract the threshold from the membrane potential each time a spike is generated;\n",
        "2.  *reset to zero* $-$ force the membrane potential to zero each time a spike is generated.\n",
        "3.  *no reset* $-$ do nothing, and let the firing go potentially uncontrolled.\n",
        "\n",
        "<center>\n",
        "<img src='file/tutorial2/2_5_reset.png?raw=true' width=\"450\">\n",
        "</center>\n",
        "\n",
        "Instantiate another neuron model to demonstrate how to alternate between reset mechanisms. \n",
        "By default, snnTorch neuron models use `reset_mechanism = \"subtract\"`. This can be explicitly overridden by passing the argument `reset_mechanism =  \"zero\"`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "id": "7bfidqhKXdri"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 720x432 with 6 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "# Neuron with reset_mechanism set to \"zero\"\n",
        "lif4 = snn.Lapicque(R=5.1, C=5e-3, time_step=1e-3, threshold=0.5, reset_mechanism=\"zero\")\n",
        "\n",
        "# Initialize inputs and outputs\n",
        "spk_in = spikegen.rate_conv(torch.ones((num_steps)) * 0.40)\n",
        "mem = torch.ones(1)*0.5\n",
        "spk_out = torch.zeros(1)\n",
        "mem_rec0 = [mem]\n",
        "spk_rec0 = [spk_out]\n",
        "\n",
        "# Neuron simulation\n",
        "for step in range(num_steps):\n",
        "  spk_out, mem = lif4(spk_in[step], mem)\n",
        "  spk_rec0.append(spk_out)\n",
        "  mem_rec0.append(mem)\n",
        "\n",
        "# convert lists to tensors\n",
        "mem_rec0 = torch.stack(mem_rec0)\n",
        "spk_rec0 = torch.stack(spk_rec0)\n",
        "\n",
        "plot_reset_comparison(spk_in, mem_rec, spk_rec, mem_rec0, spk_rec0)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Dzs7qX2Kb8j_"
      },
      "source": [
        "Pay close attention to the evolution of the membrane potential, especially in the moments after it reaches the threshold. You may notice that for \"Reset to Zero\", the membrane potential is forced back to zero after each spike.\n",
        "\n",
        "So which one is better? Applying `\"subtract\"` (the default value in `reset_mechanism`) is less lossy, because it does not ignore how much the membrane exceeds the threshold by.\n",
        "\n",
        "On the other hand, applying a hard reset with `\"zero\"` promotes sparsity and potentially less power consumption when running on dedicated neuromorphic hardware. Both options are available for you to experiment with. \n",
        "\n",
        "That covers the basics of a LIF neuron model!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OTRCyd0Xa-QK"
      },
      "source": [
        "## Further Reading\n",
        "* [Check out the snnTorch GitHub project here.](https://github.com/jeshraghian/snntorch)\n",
        "* [snnTorch documentation](https://snntorch.readthedocs.io/en/latest/snntorch.html) of the Lapicque, Leaky, Synaptic, and Alpha models\n",
        "* [*Neuronal Dynamics:\n",
        "From single neurons to networks and models of cognition*](https://neuronaldynamics.epfl.ch/index.html) by\n",
        "Wulfram Gerstner, Werner M. Kistler, Richard Naud and Liam Paninski.\n",
        "* [Theoretical Neuroscience: Computational and Mathematical Modeling of Neural Systems](https://mitpress.mit.edu/books/theoretical-neuroscience) by Laurence F. Abbott and Peter Dayan"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [],
      "include_colab_link": true,
      "name": "Untitled17.ipynb",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "d",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.9.12"
    },
    "vscode": {
      "interpreter": {
        "hash": "8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1"
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}
